mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 23:35:58 +00:00
Merge branch 'master' into 6810-bugdevops-fix-broken-links-and-content-in-readmes-part-2
This commit is contained in:
commit
6ddeb2b444
4
.github/workflows/check-documentation.yml
vendored
4
.github/workflows/check-documentation.yml
vendored
@ -28,11 +28,13 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@master
|
||||
- name: Remove old documentation files
|
||||
run: rm -rf ./deployment/src/old/ # workaround until https://github.com/gaurav-nelson/github-action-markdown-link-check/pull/183 has been done
|
||||
- name: Check Markdown Links
|
||||
uses: gaurav-nelson/github-action-markdown-link-check@master
|
||||
with:
|
||||
use-quiet-mode: 'yes'
|
||||
use-verbose-mode: 'yes'
|
||||
use-verbose-mode: 'no'
|
||||
# at any .md file change take the chance to check the links in all .md files
|
||||
check-modified-files-only: 'no'
|
||||
config-file: '.github/workflows/mlc_config.json'
|
||||
|
||||
2
.github/workflows/mlc_config.json
vendored
2
.github/workflows/mlc_config.json
vendored
@ -3,7 +3,7 @@
|
||||
"retryOn429": true,
|
||||
"retryCount": 2,
|
||||
"fallbackRetryDelay": "30s",
|
||||
"aliveStatusCodes": [200, 206],
|
||||
"aliveStatusCodes": [200, 206, 303, 403],
|
||||
"ignorePatterns": [
|
||||
{
|
||||
"pattern": "^(https:\/\/github.com\/Ocelot-Social-Community\/Ocelot-Social\/(pull|deployment\/src\/old)\/|http:\/\/localhost)"
|
||||
|
||||
11
.vuepress/config.js
Normal file
11
.vuepress/config.js
Normal file
@ -0,0 +1,11 @@
|
||||
import { defineUserConfig } from 'vuepress'
|
||||
import meta from './config/meta'
|
||||
import theme from './config/theme'
|
||||
import plugins from './config/plugins'
|
||||
|
||||
export default defineUserConfig({
|
||||
pagePatterns: ['**/*.md', '!.vuepress', '!node_modules', '!backend/node_modules', '!webapp/node_modules', '!deployment/src/old'],
|
||||
...meta,
|
||||
theme,
|
||||
plugins,
|
||||
})
|
||||
8
.vuepress/config/meta.js
Normal file
8
.vuepress/config/meta.js
Normal file
@ -0,0 +1,8 @@
|
||||
export default {
|
||||
base: '/',
|
||||
title: 'Ocelot.Social Documentation',
|
||||
description: 'Ocelot.Social Documentation',
|
||||
head: [
|
||||
['meta', {name: 'viewport', content: 'width=device-width,initial-scale=1'}],
|
||||
],
|
||||
}
|
||||
18
.vuepress/config/plugins.js
Normal file
18
.vuepress/config/plugins.js
Normal file
@ -0,0 +1,18 @@
|
||||
import { searchProPlugin } from 'vuepress-plugin-search-pro'
|
||||
|
||||
export default [
|
||||
searchProPlugin({
|
||||
indexContent: true,
|
||||
autoSuggestions: true,
|
||||
customFields: [
|
||||
{
|
||||
getter: (page) => page.frontmatter.category,
|
||||
formatter: "Category: $content",
|
||||
},
|
||||
{
|
||||
getter: (page) => page.frontmatter.tag,
|
||||
formatter: "Tag: $content",
|
||||
},
|
||||
],
|
||||
})
|
||||
]
|
||||
82
.vuepress/config/theme.js
Normal file
82
.vuepress/config/theme.js
Normal file
@ -0,0 +1,82 @@
|
||||
import path from 'path'
|
||||
import fs from 'fs'
|
||||
import { hopeTheme } from 'vuepress-theme-hope'
|
||||
|
||||
export default hopeTheme({
|
||||
favicon: 'favicon.ico',
|
||||
logo: '/logo.svg',
|
||||
docsRepo: 'https://github.com/Ocelot-Social-Community/Ocelot-Social',
|
||||
docsBranch: 'master',
|
||||
docsDir: '.',
|
||||
editLink: true,
|
||||
lastUpdated: false,
|
||||
contributors: false,
|
||||
print: false,
|
||||
pure: true,
|
||||
displayFooter: true,
|
||||
footer: 'CC BY busFaktor() e.V. & Authors',
|
||||
sidebar: generateSidebar('../../SUMMARY.md'),
|
||||
navbar: [
|
||||
{ text: 'Home', link: '/' },
|
||||
{
|
||||
text: 'Github',
|
||||
link: 'https://github.com/Ocelot-Social-Community/Ocelot-Social'
|
||||
},
|
||||
],
|
||||
plugins: {
|
||||
mdEnhance: {
|
||||
tabs: true,
|
||||
imgSize: true
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
function generateSidebar(summaryFileName) {
|
||||
const summaryFile = path.resolve(__dirname, summaryFileName)
|
||||
|
||||
try {
|
||||
return getSummaryData(summaryFile)
|
||||
} catch (err) {
|
||||
console.error(`Error generating sidebar from file ${summaryFileName}:`, err)
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
function getSummaryData(file) {
|
||||
const lines = fs.readFileSync(file, 'utf8').split('\n')
|
||||
const sidebarStructure = []
|
||||
let currentParent = null
|
||||
|
||||
lines.forEach((line, i) => {
|
||||
const level = line.search(/\S|$/) / 2
|
||||
const match = line.match(/^\s*\*\s*\[([^\]]+)\]\(([^)]+)\)/)
|
||||
|
||||
if (match) {
|
||||
const newEntry = { text: match[1], link: `/${match[2]}`, children: [] }
|
||||
if (level === 0) {
|
||||
sidebarStructure.push(newEntry)
|
||||
currentParent = sidebarStructure[sidebarStructure.length - 1]
|
||||
} else {
|
||||
let parent = currentParent
|
||||
|
||||
for (let i = 1; i < level; i++) {
|
||||
parent = parent.children[parent.children.length - 1]
|
||||
}
|
||||
|
||||
parent.children.push(newEntry)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
sidebarStructure.forEach(removeEmptyArrays)
|
||||
return sidebarStructure
|
||||
}
|
||||
|
||||
function removeEmptyArrays(item) {
|
||||
if (item.children && item.children.length === 0) {
|
||||
delete item.children;
|
||||
} else if (item.children) {
|
||||
item.children.forEach(removeEmptyArrays);
|
||||
}
|
||||
}
|
||||
|
||||
BIN
.vuepress/public/favicon.ico
Normal file
BIN
.vuepress/public/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.4 KiB |
65
.vuepress/public/logo.svg
Normal file
65
.vuepress/public/logo.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 28 KiB |
@ -1,6 +1,6 @@
|
||||
# CONTRIBUTING
|
||||
|
||||
Thank you so much for thinking of contributing to the [ocelot.social](https://ocelot.social) project! It's awesome you're here, we really appreciate it. :-\)
|
||||
Thank you so much for thinking of contributing to the <!-- [ -->ocelot.social<!-- ](https://ocelot.social) --> project! It's awesome you're here, we really appreciate it. :-\)
|
||||
|
||||
## Getting Set Up
|
||||
|
||||
@ -48,6 +48,9 @@ You can talk to our core team on [Discord](https://discord.gg/AJSX9DCSUA). And o
|
||||
* Moriz (@Mogge)
|
||||
* Wolle (@Tirokk)
|
||||
* Alex (@ogerly)
|
||||
* Hannes (@elweyn5803)
|
||||
* Mathias (@mahula)
|
||||
* Markus (@maeckes#1133)
|
||||
|
||||
<!-- * Robert (@roschaefer)
|
||||
* Matt (@mattwr18)
|
||||
|
||||
16
README.md
16
README.md
@ -6,11 +6,13 @@
|
||||
[](https://discord.gg/AJSX9DCSUA)
|
||||
[](https://www.codetriage.com/ocelot-social-community/ocelot-social)
|
||||
|
||||
[Ocelot.social](https://ocelot.social) is free and open source software program code to run social networks. Its development is supported by a community of programmers and interested network operators.
|
||||
<!-- [ -->Ocelot.social<!-- ](<https://ocelot.social>) --> is free and open source software program code to run social networks. Its development is supported by a community of programmers and interested network operators.
|
||||
|
||||
<!-- markdownlint-disable MD033 -->
|
||||
<p align="center">
|
||||
<a href="https://ocelot.social" target="_blank"><img src="webapp/static/img/custom/logo-squared.svg" alt="ocelot.social" width="40%" height="40%"></a>
|
||||
<!-- <a href="https://ocelot.social" target="_blank"> -->
|
||||
<img src="https://raw.githubusercontent.com/Ocelot-Social-Community/Ocelot-Social/master/webapp/static/img/custom/logo-squared.svg" alt="ocelot.social" width="40%" height="40%">
|
||||
<!-- </a> -->
|
||||
</p>
|
||||
<!-- markdownlint-enable MD033 -->
|
||||
|
||||
@ -67,7 +69,7 @@ Try out our live demo network, see [here](#live-demo-and-developer-logins).
|
||||
If you're wondering how you could help, there are plenty of ways, e.g.:
|
||||
|
||||
- Spread the good word about ocelot.social to make it more popular:
|
||||
- Add the link [ocelot.social](https://ocelot.social) to your website.
|
||||
- Add the link <!-- [ -->ocelot.social<!-- ](https://ocelot.social)--> to your website.
|
||||
- Give ocelot.social a Like at <https://alternativeto.net/software/ocelot-social/>.
|
||||
- Star our project on GitHub at <https://github.com/Ocelot-Social-Community/Ocelot-Social/>.
|
||||
- Promote it on your social networks.
|
||||
@ -138,11 +140,11 @@ $ cd Ocelot-Social
|
||||
|
||||
### Live Demo and Developer Logins
|
||||
|
||||
**Try out our deployed [development environment](https://stage.ocelot.social).**
|
||||
**Try out our deployed <!-- [ -->development environment<!--](https://stage.ocelot.social)-->.**
|
||||
|
||||
Visit our staging networks:
|
||||
|
||||
- central staging network: [stage.ocelot.social](https://stage.ocelot.social)
|
||||
- central staging network: <!-- [ -->stage.ocelot.social<!-- ](https://stage.ocelot.social)-->
|
||||
<!-- - rebranded staging network: [rebrand.ocelot.social](https://stage.ocelot.social). -->
|
||||
|
||||
#### Login
|
||||
@ -249,7 +251,7 @@ $ yarn locales --fix
|
||||
$ yarn test
|
||||
```
|
||||
|
||||
Check out our [contribution guideline](./CONTRIBUTING.md), too!
|
||||
Check out our [contribution guideline](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/CONTRIBUTING.md), too!
|
||||
|
||||
#### Developer Chat
|
||||
|
||||
@ -303,7 +305,7 @@ Locale Icons made by [Freepik](http://www.freepik.com/) from [www.flaticon.com](
|
||||
Browser compatibility testing with [BrowserStack](https://www.browserstack.com/).
|
||||
|
||||
<!-- markdownlint-disable MD033 -->
|
||||
<img alt="BrowserStack Logo" src=".gitbook/assets/browserstack-logo.svg" width="256">
|
||||
<img alt="BrowserStack Logo" src="https://raw.githubusercontent.com/Ocelot-Social-Community/Ocelot-Social/master/.gitbook/assets/browserstack-logo.svg" width="256">
|
||||
<!-- markdownlint-enable MD033 -->
|
||||
|
||||
### License
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
# Table of contents
|
||||
|
||||
* [Introduction](README.md)
|
||||
* [Edit this Documentation](edit-this-documentation.md)
|
||||
* [Neo4J](neo4j/README.md)
|
||||
* [Backend](backend/README.md)
|
||||
* [GraphQL](backend/graphql.md)
|
||||
@ -19,4 +18,5 @@
|
||||
* [Contributing](CONTRIBUTING.md)
|
||||
* [Feature Specification](cypress/features.md)
|
||||
* [Code of Conduct](CODE_OF_CONDUCT.md)
|
||||
* [Documentation](documentation.md)
|
||||
* [License](LICENSE.md)
|
||||
|
||||
@ -83,8 +83,8 @@ More details about our GraphQL playground and how to use it with ocelot.social c
|
||||
|
||||
Database indexes and constraints need to be created and upgraded when the database and the backend are running:
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Docker" %}
|
||||
::: tabs
|
||||
@tab:active Docker
|
||||
|
||||
```bash
|
||||
# in main folder while docker-compose is running
|
||||
@ -102,8 +102,7 @@ $ docker compose exec backend /bin/sh -c "yarn prod:migrate init"
|
||||
$ docker exec backend yarn run db:migrate up
|
||||
```
|
||||
|
||||
{% endtab %}
|
||||
{% tab title="Without Docker" %}
|
||||
@tab Without Docker
|
||||
|
||||
```bash
|
||||
# in folder backend/ while database is running
|
||||
@ -116,16 +115,15 @@ yarn run db:migrate init
|
||||
yarn run db:migrate up
|
||||
```
|
||||
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
:::
|
||||
|
||||
#### Seed Database
|
||||
|
||||
If you want your backend to return anything else than an empty response, you
|
||||
need to seed your database:
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Docker" %}
|
||||
::: tabs
|
||||
@tab:active Docker
|
||||
|
||||
In another terminal run:
|
||||
|
||||
@ -147,8 +145,7 @@ $ docker exec backend yarn run db:migrate init
|
||||
$ docker exec backend yarn run db:migrate up
|
||||
```
|
||||
|
||||
{% endtab %}
|
||||
{% tab title="Without Docker" %}
|
||||
@tab Without Docker
|
||||
|
||||
Run:
|
||||
|
||||
@ -164,16 +161,15 @@ To reset the database run:
|
||||
$ yarn run db:reset
|
||||
```
|
||||
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
:::
|
||||
|
||||
### Data migrations
|
||||
|
||||
Although Neo4J is schema-less,you might find yourself in a situation in which
|
||||
you have to migrate your data e.g. because your data modeling has changed.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Docker" %}
|
||||
::: tabs
|
||||
@tab:active Docker
|
||||
|
||||
Generate a data migration file:
|
||||
|
||||
@ -190,8 +186,7 @@ To run the migration:
|
||||
$ docker exec backend yarn run db:migrate up
|
||||
```
|
||||
|
||||
{% endtab %}
|
||||
{% tab title="Without Docker" %}
|
||||
@tab Without Docker
|
||||
|
||||
Generate a data migration file:
|
||||
|
||||
@ -208,16 +203,15 @@ To run the migration:
|
||||
$ yarn run db:migrate up
|
||||
```
|
||||
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
:::
|
||||
|
||||
## Testing
|
||||
|
||||
**Beware**: We have no multiple database setup at the moment. We clean the
|
||||
database after each test, running the tests will wipe out all your data!
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Docker" %}
|
||||
::: tabs
|
||||
@tab:active Docker
|
||||
|
||||
Run the unit tests:
|
||||
|
||||
@ -226,9 +220,7 @@ Run the unit tests:
|
||||
$ docker exec backend yarn run test
|
||||
```
|
||||
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Without Docker" %}
|
||||
@tab Without Docker
|
||||
|
||||
Run the unit tests:
|
||||
|
||||
@ -237,5 +229,4 @@ Run the unit tests:
|
||||
$ yarn run test
|
||||
```
|
||||
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
:::
|
||||
|
||||
@ -45,7 +45,7 @@
|
||||
"cheerio": "~1.0.0-rc.3",
|
||||
"cors": "~2.8.5",
|
||||
"cross-env": "~7.0.3",
|
||||
"dotenv": "~8.2.0",
|
||||
"dotenv": "~16.3.1",
|
||||
"express": "^4.17.1",
|
||||
"graphql": "^14.6.0",
|
||||
"graphql-middleware": "~4.0.2",
|
||||
@ -85,7 +85,7 @@
|
||||
"nodemailer": "^6.4.4",
|
||||
"nodemailer-html-to-text": "^3.2.0",
|
||||
"request": "~2.88.2",
|
||||
"sanitize-html": "~1.22.0",
|
||||
"sanitize-html": "~2.11.0",
|
||||
"slug": "~6.0.0",
|
||||
"subscriptions-transport-ws": "^0.9.19",
|
||||
"trunc-html": "~1.1.2",
|
||||
@ -100,13 +100,11 @@
|
||||
"@typescript-eslint/eslint-plugin": "^5.57.1",
|
||||
"@typescript-eslint/parser": "^5.57.1",
|
||||
"apollo-server-testing": "~2.11.0",
|
||||
"chai": "~4.3.8",
|
||||
"cucumber": "~6.0.5",
|
||||
"eslint": "^8.37.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-config-standard": "^17.0.0",
|
||||
"eslint-import-resolver-typescript": "^3.6.1",
|
||||
"eslint-plugin-import": "^2.27.5",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"eslint-plugin-jest": "^27.2.1",
|
||||
"eslint-plugin-n": "^15.7.0",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
|
||||
@ -1,35 +1,11 @@
|
||||
import Factory, { cleanDatabase } from '../db/factories'
|
||||
import { getDriver, getNeode } from '../db/neo4j'
|
||||
import decode from './decode'
|
||||
import encode from './encode'
|
||||
|
||||
const driver = getDriver()
|
||||
const neode = getNeode()
|
||||
|
||||
// here is the decoded JWT token:
|
||||
// {
|
||||
// role: 'user',
|
||||
// locationName: null,
|
||||
// name: 'Jenny Rostock',
|
||||
// about: null,
|
||||
// avatar: 'https://s3.amazonaws.com/uifaces/faces/twitter/sasha_shestakov/128.jpg',
|
||||
// id: 'u3',
|
||||
// email: 'user@example.org',
|
||||
// slug: 'jenny-rostock',
|
||||
// iat: 1550846680,
|
||||
// exp: 1637246680,
|
||||
// aud: 'http://localhost:3000',
|
||||
// iss: 'http://localhost:4000',
|
||||
// sub: 'u3'
|
||||
// }
|
||||
// !!! if the token expires go into the GraphQL Playground in the browser at 'http://localhost:4000' with a running backend and a seeded Neo4j database
|
||||
// now do the login mutation:
|
||||
// mutation {
|
||||
// login(email:"user@example.org", password:"1234")
|
||||
// }
|
||||
// replace this token here with the one you received as the result
|
||||
export const validAuthorizationHeader =
|
||||
'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InUzIiwibmFtZSI6Ikplbm55IFJvc3RvY2siLCJzbHVnIjoiamVubnktcm9zdG9jayIsImlhdCI6MTYzNzY0NDMwMCwiZXhwIjoxNzAwNzU5NTAwLCJhdWQiOiJodHRwOi8vbG9jYWxob3N0OjMwMDAiLCJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjQwMDAiLCJzdWIiOiJ1MyJ9.ispIfRfgkXuYoIhKx7x2jPxgvHDJVv1ogMycLmfUnsk'
|
||||
|
||||
beforeAll(async () => {
|
||||
await cleanDatabase()
|
||||
})
|
||||
@ -75,14 +51,8 @@ describe('decode', () => {
|
||||
})
|
||||
|
||||
describe('given valid JWT Bearer token', () => {
|
||||
beforeEach(() => {
|
||||
authorizationHeader = validAuthorizationHeader
|
||||
})
|
||||
|
||||
it('returns null', returnsNull)
|
||||
|
||||
describe('and corresponding user in the database', () => {
|
||||
let user
|
||||
let user, validAuthorizationHeader
|
||||
beforeEach(async () => {
|
||||
user = await Factory.build(
|
||||
'user',
|
||||
@ -99,10 +69,11 @@ describe('decode', () => {
|
||||
email: 'user@example.org',
|
||||
},
|
||||
)
|
||||
validAuthorizationHeader = encode(await user.toJson())
|
||||
})
|
||||
|
||||
it('returns user object without email', async () => {
|
||||
await expect(decode(driver, authorizationHeader)).resolves.toMatchObject({
|
||||
await expect(decode(driver, validAuthorizationHeader)).resolves.toMatchObject({
|
||||
role: 'user',
|
||||
name: 'Jenny Rostock',
|
||||
id: 'u3',
|
||||
@ -113,7 +84,7 @@ describe('decode', () => {
|
||||
it('sets `lastActiveAt`', async () => {
|
||||
let user = await neode.first('User', { id: 'u3' })
|
||||
await expect(user.toJson()).resolves.not.toHaveProperty('lastActiveAt')
|
||||
await decode(driver, authorizationHeader)
|
||||
await decode(driver, validAuthorizationHeader)
|
||||
user = await neode.first('User', { id: 'u3' })
|
||||
await expect(user.toJson()).resolves.toMatchObject({
|
||||
lastActiveAt: expect.any(String),
|
||||
@ -129,7 +100,7 @@ describe('decode', () => {
|
||||
await expect(user.toJson()).resolves.toMatchObject({
|
||||
lastActiveAt: '2019-10-03T23:33:08.598Z',
|
||||
})
|
||||
await decode(driver, authorizationHeader)
|
||||
await decode(driver, validAuthorizationHeader)
|
||||
user = await neode.first('User', { id: 'u3' })
|
||||
await expect(user.toJson()).resolves.toMatchObject({
|
||||
// should be a different time by now ;)
|
||||
@ -152,6 +123,15 @@ describe('decode', () => {
|
||||
|
||||
it('returns null', returnsNull)
|
||||
})
|
||||
|
||||
describe('and NO corresponding user in the database', () => {
|
||||
beforeEach(async () => {
|
||||
await cleanDatabase()
|
||||
authorizationHeader = validAuthorizationHeader
|
||||
})
|
||||
|
||||
it('returns null', returnsNull)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -14,9 +14,9 @@ The following features will be implemented. This gets done in three steps:
|
||||
2. In a second step we will make our prototype publicly available with an advanced feature set including the technology and organizational structure to drive a bigger public social network.
|
||||
3. In a third step all the remaining features will be implemented to build the full product.
|
||||
|
||||
### User Account
|
||||
The implemented features can be found [here](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/e2e)
|
||||
|
||||
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/user_account)
|
||||
### User Account
|
||||
|
||||
* Sign-up
|
||||
* Agree to Data Privacy Statement
|
||||
@ -34,8 +34,6 @@ The following features will be implemented. This gets done in three steps:
|
||||
|
||||
### User Profile
|
||||
|
||||
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/user_profile)
|
||||
|
||||
* Upload and Change Avatar
|
||||
* Upload and Change Profile Picture
|
||||
* Edit Social Media Accounts
|
||||
@ -46,8 +44,6 @@ The following features will be implemented. This gets done in three steps:
|
||||
|
||||
### Dashboard
|
||||
|
||||
[Clickdummy](https://preview.uxpin.com/24a2ab8adcd84f9a763d87ed27251351225e0ecd#/pages/99768919/simulate/sitemap?mode=i)
|
||||
|
||||
* Show Link to own Profile
|
||||
* Show Friends Widget
|
||||
* Show Favorites Widget
|
||||
@ -59,8 +55,6 @@ The following features will be implemented. This gets done in three steps:
|
||||
|
||||
### Posts
|
||||
|
||||
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/post)
|
||||
|
||||
* Creating Posts
|
||||
* Persistent Links
|
||||
* Upload Teaser Picture for Post
|
||||
@ -85,8 +79,6 @@ The following features will be implemented. This gets done in three steps:
|
||||
|
||||
### Notifications
|
||||
|
||||
[Cucumber features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/notifications)
|
||||
|
||||
* User @-mentionings
|
||||
* Notify authors for comments
|
||||
* Administrative notifications to all users
|
||||
@ -108,8 +100,6 @@ The following features will be implemented. This gets done in three steps:
|
||||
|
||||
### Blacklist
|
||||
|
||||
[Video](https://www.youtube.com/watch?v=-uDvvmN8hLQ)
|
||||
|
||||
* Blacklist Users
|
||||
* Blacklist specific Terms
|
||||
* Blacklist Tags
|
||||
@ -117,8 +107,6 @@ The following features will be implemented. This gets done in three steps:
|
||||
|
||||
### Search
|
||||
|
||||
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/search)
|
||||
|
||||
* Search for Categories
|
||||
* Search for Tags
|
||||
* Fulltext Search
|
||||
@ -238,8 +226,6 @@ Shows automatically related actions for existing post.
|
||||
|
||||
### Moderation
|
||||
|
||||
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/moderation)
|
||||
|
||||
* Report Button for users for doubtful Content
|
||||
* Moderator Panel
|
||||
* List of reported Content \(later replaced by User-Moderation\)
|
||||
@ -250,8 +236,6 @@ Shows automatically related actions for existing post.
|
||||
|
||||
### Administration
|
||||
|
||||
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/administration)
|
||||
|
||||
* Provide Admin-Interface to send Users Invite Code
|
||||
* Static Pages for Data Privacy Statement ...
|
||||
* Create, edit and delete Announcements
|
||||
@ -265,8 +249,6 @@ Shows automatically related actions for existing post.
|
||||
|
||||
### Internationalization
|
||||
|
||||
[Cucumber Features](https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/cypress/integration/internationalization)
|
||||
|
||||
* Frontend UI
|
||||
* Backend Error Messages
|
||||
|
||||
|
||||
@ -9,8 +9,6 @@
|
||||
$ export DOCKER_DEFAULT_PLATFORM=linux/amd64
|
||||
```
|
||||
|
||||
For even more informations, see [Docker More Closely](#docker-more-closely)
|
||||
|
||||
### Docker Compose Override File For Apple M1 Platform
|
||||
|
||||
For Docker compose `up` or `build` commands, you can use our Apple M1 override file that specifies the M1 platform:
|
||||
@ -27,7 +25,3 @@ $ docker compose -f docker-compose.ocelotsocial-branded.yml -f docker-compose.ap
|
||||
# only once: init admin user and create indexes and constraints in Neo4j database
|
||||
$ docker compose exec backend /bin/sh -c "yarn prod:migrate init"
|
||||
```
|
||||
|
||||
## Docker More Closely In Main Code
|
||||
|
||||
To get more informations about the Apple M1 platform and to analyze the Docker builds etc. you find our documentation in our main code, [here](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/DOCKER_MORE_CLOSELY.md).
|
||||
|
||||
@ -10,17 +10,19 @@ The forked original repository is [stage.ocelot.social](https://github.com/Ocelo
|
||||
|
||||
<!-- markdownlint-disable MD033 -->
|
||||
<p align="center">
|
||||
<a href="https://ocelot.social" target="_blank"><img src="../webapp/static/img/custom/logo-squared.svg" alt="ocelot.social" width="40%" height="40%"></a>
|
||||
<!-- <a href="https://ocelot.social" target="_blank"> -->
|
||||
<img src="../webapp/static/img/custom/logo-squared.svg" alt="ocelot.social" width="40%" height="40%">
|
||||
<!-- </a> -->
|
||||
</p>
|
||||
<!-- markdownlint-enable MD033 -->
|
||||
|
||||
## Live demo
|
||||
|
||||
__Try out our deployed [development environment](https://stage.ocelot.social).__
|
||||
__Try out our deployed <!-- [ -->development environment<!-- ](https://stage.ocelot.social)-->.__
|
||||
|
||||
Visit our staging networks:
|
||||
|
||||
- central staging network: [stage.ocelot.social](https://stage.ocelot.social)
|
||||
- central staging network: <!-- [ -->stage.ocelot.social<!-- ](https://stage.ocelot.social)-->
|
||||
<!-- - rebranded staging network: [rebrand.ocelot.social](https://stage.ocelot.social). -->
|
||||
|
||||
Logins:
|
||||
@ -41,14 +43,16 @@ Write your own data into the main configuration file:
|
||||
|
||||
- [package.json](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/package.json)
|
||||
|
||||
Since all deployment methods described here depend on [Docker](https://docker.com) and [DockerHub](https://hub.docker.com), you need to create your own organisation on DockerHub and put its name in the [package.json](/package.json) file as your `dockerOrganisation`.
|
||||
Since all deployment methods described here depend on [Docker](https://docker.com) and [DockerHub](https://hub.docker.com), you need to create your own organisation on DockerHub and put its name in the [package.json](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/package.json) file as your `dockerOrganisation`.
|
||||
|
||||
### Configure And Branding
|
||||
|
||||
The next step is:
|
||||
|
||||
- [Set Environment Variables and Configurations](./deployment-values.md)
|
||||
<!-- markdown-link-check-disable -->
|
||||
- [Configure And Branding](./configurations/stage.ocelot.social/branding/README.md)
|
||||
<!-- markdown-link-check-enable -->
|
||||
|
||||
### Optional: Locally Testing Configuration And Branding
|
||||
|
||||
@ -71,7 +75,7 @@ For the maintenance page have a look in your browser at `http://localhost:5000/`
|
||||
|
||||
### Push Changes To GitHub
|
||||
|
||||
Before merging these changes into the "master" branch on your GitHub fork repository, you need to configure the GitHub repository secrets. This is necessary to [publish](../.github/workflows/publish.yml) the Docker images by pushing them via GitHub actions to repositories belonging to your DockerHub organisation.
|
||||
Before merging these changes into the "master" branch on your GitHub fork repository, you need to configure the GitHub repository secrets. This is necessary to [publish](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/.github/workflows/publish.yml) the Docker images by pushing them via GitHub actions to repositories belonging to your DockerHub organisation.
|
||||
|
||||
First, go to your DockerHub profile under `Account Settings` and click on the `Security` tab. There you create an access token called `<your-organisation>-access-token` and copy the token to a safe place.
|
||||
|
||||
@ -131,7 +135,6 @@ Browser compatibility testing with [BrowserStack](https://www.browserstack.com/)
|
||||
|
||||
## License
|
||||
|
||||
See the [LICENSE](../LICENSE.md) file for license rights and limitations (MIT).
|
||||
|
||||
See the [LICENSE](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/LICENSE.md) file for license rights and limitations (MIT).
|
||||
|
||||
We need `DOCKER_BUILDKIT=0` for this to work.
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit fdc2e52fa444b300e1c4736600bc0e9ae3314222
|
||||
Subproject commit a930f11d8f2d0c11136ff0bf9188aaab9cabc5d1
|
||||
@ -4,8 +4,8 @@ Before you start the deployment you have to do preparations.
|
||||
|
||||
## Deployment Preparations
|
||||
|
||||
Since all deployment methods described here depend on [Docker](https://docker.com) and [DockerHub](https://hub.docker.com), you need to create your own organisation on DockerHub and put its name in the [package.json](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/package.json) file as your `dockerOrganisation`.
|
||||
Read more details in the [main README](./README.md) under [Usage](./README.md#usage).
|
||||
Since all deployment methods described here depend on [Docker](https://docker.com) and [DockerHub](https://hub.docker.com), you need to create your own organisation on DockerHub and put its name in the [package.json](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/package.json) file as your `dockerOrganisation`.
|
||||
Read more details in the [main README](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md) under [Usage](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md#usage).
|
||||
|
||||
## Deployment Methods
|
||||
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
# !!! never tested !!!
|
||||
|
||||
# base setup
|
||||
SCRIPT_PATH=$(realpath $0)
|
||||
SCRIPT_DIR=$(dirname $SCRIPT_PATH)
|
||||
@ -35,7 +33,7 @@ helm install \
|
||||
--kubeconfig=${KUBECONFIG} \
|
||||
--namespace cert-manager \
|
||||
--create-namespace \
|
||||
--version v1.13.1 \
|
||||
--version v1.13.2 \
|
||||
--set installCRDs=true
|
||||
|
||||
## install Ocelot with helm
|
||||
|
||||
@ -76,7 +76,7 @@ $ helm install \
|
||||
cert-manager jetstack/cert-manager \
|
||||
--namespace cert-manager \
|
||||
--create-namespace \
|
||||
--version v1.13.1 \
|
||||
--version v1.13.2 \
|
||||
--set installCRDs=true
|
||||
# or kubeconfig.yaml in your repo, then adjust
|
||||
$ helm install \
|
||||
@ -84,7 +84,7 @@ $ helm install \
|
||||
--kubeconfig ./kubeconfig.yaml \
|
||||
--namespace cert-manager \
|
||||
--create-namespace \
|
||||
--version v1.13.1 \
|
||||
--version v1.13.2 \
|
||||
--set installCRDs=true
|
||||
``` -->
|
||||
|
||||
@ -282,7 +282,7 @@ helm uninstall ocelot \
|
||||
|
||||
You can and should do [backups](./Backup.md) with Kubernetes for sure.
|
||||
|
||||
## Error Reporting
|
||||
<!-- ## Error Reporting
|
||||
|
||||
We use [Sentry](https://github.com/getsentry/sentry) for error reporting in both
|
||||
our backend and web frontend. You can either use a hosted or a self-hosted
|
||||
@ -297,7 +297,7 @@ If you are lucky enough to have a kubernetes cluster with the required hardware
|
||||
support, try this [helm chart](https://github.com/helm/charts/tree/master/stable/sentry).
|
||||
|
||||
On our kubernetes cluster we get "mult-attach" errors for persistent volumes.
|
||||
Apparently DigitalOcean's kubernetes clusters do not fulfill the requirements.
|
||||
Apparently DigitalOcean's kubernetes clusters do not fulfill the requirements. -->
|
||||
|
||||
## Kubernetes Commands (Without Helm) To Deploy New Docker Images To A Kubernetes Cluster
|
||||
|
||||
|
||||
@ -23,13 +23,12 @@ CAUTION: It seems that the behaviour of DigitalOcean has changed and the load ba
|
||||
And to create a load balancer costs money. Please refine the following documentation if required.
|
||||
{% endhint %}
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Without Load Balancer" %}
|
||||
::: tabs
|
||||
@tab:active Without Load Balancer
|
||||
|
||||
A solution without a load balance you can find [here](../no-loadbalancer/README.md).
|
||||
|
||||
{% endtab %}
|
||||
{% tab title="With DigitalOcean Load Balancer" %}
|
||||
@tab With DigitalOcean Load Balancer
|
||||
|
||||
{% hint style="info" %}
|
||||
CAUTION: It seems that the behaviour of DigitalOcean has changed and the load balancer is not created automatically anymore.
|
||||
@ -44,8 +43,7 @@ address. On DigitalOcean, this is how it should look like:
|
||||
If the load balancer isn't created automatically you have to create it your self on DigitalOcean under Networks.
|
||||
In case you don't need a DigitalOcean load balancer (which costs money by the way) have a look in the tab `Without Load Balancer`.
|
||||
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
:::
|
||||
|
||||
Check the ingress server is working correctly:
|
||||
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
# Edit this Documentation
|
||||
# Documentation
|
||||
|
||||
## Edit this Documentation
|
||||
|
||||
Find the [**table of contents** for this documentation on GitHub](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/SUMMARY.md) and navigate to the file you need to update.
|
||||
|
||||
@ -10,15 +12,15 @@ If you are ready, fill in the **Propose file change** at the end of the webpage.
|
||||
|
||||
After that you have to compare your change branch to our `master` branch with a pull request. Here make a comment which issue you have fixed. (If you are working on one of our [open issues](https://github.com/Ocelot-Social-Community/Ocelot-Social/issues) please include the number.)
|
||||
|
||||
## Markdown your documentation
|
||||
### Markdown your documentation
|
||||
|
||||
To design your documentation see the syntax description at GitBook:
|
||||
|
||||
[https://toolchain.gitbook.com/syntax/markdown.html](https://toolchain.gitbook.com/syntax/markdown.html)
|
||||
|
||||
### Some quick Examples
|
||||
#### Some quick Examples
|
||||
|
||||
#### Headlines
|
||||
##### Headlines
|
||||
|
||||
```markdown
|
||||
# Main Headline
|
||||
@ -26,21 +28,19 @@ To design your documentation see the syntax description at GitBook:
|
||||
### Small Headlines
|
||||
```
|
||||
|
||||
#### Tabs
|
||||
##### Tabs
|
||||
|
||||
```markdown
|
||||
{% tabs %}
|
||||
{% tab title="XXX" %}
|
||||
XXX
|
||||
{% endtab %}
|
||||
{% tab title="XXX" %}
|
||||
XXX
|
||||
{% endtab %}
|
||||
…
|
||||
{% endtabs %}
|
||||
::: tabs
|
||||
@tab:active First tab's title <!-- this tab is setactive -->
|
||||
|
||||
@tab Second tab's title
|
||||
|
||||
:::
|
||||
```
|
||||
|
||||
#### Commands
|
||||
|
||||
##### Commands
|
||||
|
||||
~~~markdown
|
||||
```<LANGUAGE> (for text highlighting)
|
||||
@ -48,33 +48,34 @@ XXX
|
||||
```
|
||||
~~~
|
||||
|
||||
#### Links
|
||||
##### Links
|
||||
|
||||
```markdown
|
||||
[XXX](https://XXX)
|
||||
```
|
||||
For the documentation to work in both frameworks - Github and Vuepress - please use absolute path for Github internal documentation links (e.g. /README.md over ../../README.mdetc.)
|
||||
|
||||
#### Screenshots or other Images
|
||||
##### Screenshots or other Images
|
||||
|
||||
```markdown
|
||||

|
||||
```
|
||||
|
||||
#### Hints for ToDos
|
||||
##### Hints for ToDos
|
||||
|
||||
```markdown
|
||||
{% hint style="info" %} TODO: XXX {% endhint %}
|
||||
```
|
||||
|
||||
## Host the Screenshots
|
||||
### Host the Screenshots
|
||||
|
||||
### Host on Ocelot-Social \(GitHub\) Repository
|
||||
#### Host on Ocelot-Social \(GitHub\) Repository
|
||||
|
||||
{% hint style="info" %}
|
||||
TODO: How to host on Ocelot-Social \(GitHub\) repository ...
|
||||
{% endhint %}
|
||||
|
||||
### Quick Solution
|
||||
#### Quick Solution
|
||||
|
||||
To quickly host the screenshots go to:
|
||||
|
||||
@ -88,27 +89,41 @@ Right click on it and choose kind of **Open link in new tab**.
|
||||
|
||||
Copy the URL and paste it were you need it.
|
||||
|
||||
## Screenshot Modification
|
||||
### Screenshot Modification
|
||||
|
||||
### Add an Arrow or some other Marking Stuff
|
||||
#### Add an Arrow or some other Marking Stuff
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="macOS" %}
|
||||
::: tabs
|
||||
@tab:active macOS
|
||||
|
||||
#### In the Preview App
|
||||
##### In the Preview App
|
||||
|
||||
Got to: **Menu** + **Tools** \(GER: Werkzeuge\) + **Annotate** \(GER: Anmerkungen\) + etc.
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Windows" %}
|
||||
@tab Windows
|
||||
|
||||
{% hint style="info" %}
|
||||
TODO: How to modify screenshots in Windows ...
|
||||
{% endhint %}
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Linux" %}
|
||||
@tab Linux
|
||||
{% hint style="info" %}
|
||||
TODO: How to modify screenshots in Linux ...
|
||||
{% endhint %}
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
:::
|
||||
|
||||
## Deploy this Documentation
|
||||
|
||||
TODO
|
||||
|
||||
```bash
|
||||
# set configured Node version
|
||||
nvm use
|
||||
|
||||
# install Vuepress
|
||||
npm install
|
||||
|
||||
# run vuepress
|
||||
npm run docs:dev
|
||||
```
|
||||
@ -88,7 +88,7 @@ $ docker cp <local-folder-path>/neo4j-dump <docker-image-name('neo4j')>:/var/lib
|
||||
# connect to the Docker containers Neo4j terminal
|
||||
$ docker exec -it neo4j bash
|
||||
# to load the dump into the database we need the following command in this terminal
|
||||
neo4j% neo4j-admin load --expand-commands --database=graph.db --from /var/lib/neo4j/$(date +%F)-neo4j-dump --force
|
||||
neo4j% neo4j-admin load --database=neo4j --from /var/lib/neo4j/$(date +%F)-neo4j-dump --force
|
||||
# leave the terminal by entering
|
||||
neo4j% exit
|
||||
```
|
||||
|
||||
16644
package-lock.json
generated
Normal file
16644
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@ -4,7 +4,6 @@
|
||||
"description": "Free and open source software program code available to run social networks.",
|
||||
"author": "ocelot.social Community",
|
||||
"license": "MIT",
|
||||
"private": false,
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Ocelot-Social-Community/Ocelot-Social.git"
|
||||
@ -27,24 +26,24 @@
|
||||
"scripts": {
|
||||
"db:seed": "cd backend && yarn run db:seed",
|
||||
"db:reset": "cd backend && yarn run db:reset",
|
||||
"docs:build": "NODE_OPTIONS=--openssl-legacy-provider vuepress build .",
|
||||
"docs:dev": "NODE_OPTIONS=--openssl-legacy-provider vuepress dev .",
|
||||
"cypress:run": "cypress run --e2e --browser electron --config-file ./cypress/cypress.config.js",
|
||||
"cypress:open": "cypress open --e2e --browser electron --config-file ./cypress/cypress.config.js",
|
||||
"cucumber:setup": "cd backend && yarn run dev",
|
||||
"cucumber": "wait-on tcp:4000 && cucumber-js --require-module @babel/register --exit",
|
||||
"release": "yarn version --no-git-tag-version --no-commit-hooks --no-commit && auto-changelog --latest-version $(node -p -e \"require('./package.json').version\") && cd backend && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../package.json').version\") && cd ../webapp && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../package.json').version\") && cd ../webapp/maintenance/source && yarn version --no-git-tag-version --no-commit-hooks --no-commit --new-version $(node -p -e \"require('./../../../package.json').version\")"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.23.2",
|
||||
"@babel/preset-env": "^7.23.2",
|
||||
"@babel/core": "^7.23.3",
|
||||
"@babel/preset-env": "^7.23.3",
|
||||
"@babel/register": "^7.22.15",
|
||||
"@badeball/cypress-cucumber-preprocessor": "^19.0.0",
|
||||
"@badeball/cypress-cucumber-preprocessor": "^19.1.1",
|
||||
"@cypress/browserify-preprocessor": "^3.0.2",
|
||||
"@faker-js/faker": "8.2.0",
|
||||
"@cucumber/cucumber": "10.0.1",
|
||||
"@faker-js/faker": "8.3.1",
|
||||
"auto-changelog": "^2.3.0",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"cross-env": "^7.0.3",
|
||||
"cucumber": "^6.0.5",
|
||||
"cypress": "^13.4.0",
|
||||
"cypress": "^13.6.0",
|
||||
"cypress-network-idle": "^1.14.2",
|
||||
"date-fns": "^2.25.0",
|
||||
"dotenv": "^16.3.1",
|
||||
@ -58,7 +57,12 @@
|
||||
"neode": "^0.4.8",
|
||||
"rosie": "^2.1.0",
|
||||
"slug": "^8.2.3",
|
||||
"wait-on": "^7.0.1"
|
||||
"wait-on": "^7.2.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"vuepress": "^2.0.0-rc.0",
|
||||
"vuepress-plugin-search-pro": "^2.0.0-rc.0",
|
||||
"vuepress-theme-hope": "^2.0.0-rc.0"
|
||||
},
|
||||
"resolutions": {
|
||||
"set-value": "^2.0.1",
|
||||
|
||||
@ -59,8 +59,8 @@ We ensure the quality of our frontend code by using
|
||||
|
||||
For more information see our [frontend testing guide](testing.md). Use these commands to run the tests:
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="With Docker" %}
|
||||
::: tabs
|
||||
@tab:active With Docker
|
||||
|
||||
After starting the application following the above guidelines, open new terminal windows for each of these commands:
|
||||
|
||||
@ -81,9 +81,7 @@ $ docker-compose exec webapp yarn storybook
|
||||
|
||||
You can then visit the Storybook playground on `http://localhost:3002`
|
||||
|
||||
{% endtab %}
|
||||
|
||||
{% tab title="Without Docker" %}
|
||||
@tab title Without Docker
|
||||
|
||||
After starting the application following the above guidelines, open new terminal windows and navigate to the `/webapp` directory for each of these commands:
|
||||
|
||||
@ -109,8 +107,7 @@ $ yarn storybook
|
||||
|
||||
You can then visit the Storybook playground on `http://localhost:3002`
|
||||
|
||||
{% endtab %}
|
||||
{% endtabs %}
|
||||
:::
|
||||
|
||||
## Maintenance Mode
|
||||
|
||||
|
||||
@ -8,8 +8,8 @@ The maintenance mode shows a translatable page that tells the user that we are r
|
||||
|
||||
At the moment the maintenance mode can only be locally tested with Docker-Compose.
|
||||
|
||||
{% tabs %}
|
||||
{% tab title="Locally Without Docker" %}
|
||||
::: tabs
|
||||
@tab:active Locally Without Docker
|
||||
|
||||
{% hint style="info" %}
|
||||
TODO: Implement a locally running maintenance mode! Without Docker …
|
||||
@ -25,8 +25,7 @@ $ yarn generate:maintenance
|
||||
… is unfortunatelly **not(!)** working at the moment.
|
||||
This is because the code is rewritten to be easy usable for Docker-Compose. Therefore we lost this possibility.
|
||||
|
||||
{% endtab %}
|
||||
{% tab title="Locally With Docker" %}
|
||||
@tab Locally With Docker
|
||||
|
||||
To get the maintenance mode running use the command:
|
||||
|
||||
@ -37,3 +36,5 @@ $ docker-compose up
|
||||
|
||||
And the maintenance mode page or service will be started as well in an own container.
|
||||
In the browser you can reach it under `http://localhost:3001/`.
|
||||
|
||||
:::
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
"apollo-cache-inmemory": "~1.6.6",
|
||||
"apollo-client": "~2.6.8",
|
||||
"cookie-universal-nuxt": "~2.2.2",
|
||||
"cropperjs": "^1.5.5",
|
||||
"cropperjs": "^1.6.1",
|
||||
"cross-env": "~7.0.3",
|
||||
"date-fns": "2.22.1",
|
||||
"express": "~4.17.1",
|
||||
|
||||
@ -8016,10 +8016,10 @@ create-react-context@^0.2.1:
|
||||
fbjs "^0.8.0"
|
||||
gud "^1.0.0"
|
||||
|
||||
cropperjs@^1.5.5:
|
||||
version "1.5.6"
|
||||
resolved "https://registry.yarnpkg.com/cropperjs/-/cropperjs-1.5.6.tgz#82faf432bec709d828f2f7a96d1179198edaf0e2"
|
||||
integrity sha512-eAgWf4j7sNJIG329qUHIFi17PSV0VtuWyAu9glZSgu/KlQSrfTQOC2zAz+jHGa5fAB+bJldEnQwvJEaJ8zRf5A==
|
||||
cropperjs@^1.6.1:
|
||||
version "1.6.1"
|
||||
resolved "https://registry.yarnpkg.com/cropperjs/-/cropperjs-1.6.1.tgz#fd132021d93b824b1b0f2c2c3b763419fb792d89"
|
||||
integrity sha512-F4wsi+XkDHCOMrHMYjrTEE4QBOrsHHN5/2VsVAaRq8P7E5z7xQpT75S+f/9WikmBEailas3+yo+6zPIomW+NOA==
|
||||
|
||||
cross-env@~7.0.3:
|
||||
version "7.0.3"
|
||||
@ -17486,6 +17486,7 @@ string-length@^4.0.1:
|
||||
strip-ansi "^6.0.0"
|
||||
|
||||
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.2.3:
|
||||
name string-width-cjs
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||
@ -17578,6 +17579,7 @@ string_decoder@~1.1.1:
|
||||
safe-buffer "~5.1.0"
|
||||
|
||||
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.1:
|
||||
name strip-ansi-cjs
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||
@ -19562,6 +19564,7 @@ worker-farm@^1.7.0:
|
||||
errno "~0.1.7"
|
||||
|
||||
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
|
||||
name wrap-ansi-cjs
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
||||
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user