mirror of
https://github.com/IT4Change/Ocelot-Social.git
synced 2025-12-13 07:45:56 +00:00
Merge branch 'add-vuepress-action-with-root-directory-as-docs-directory' of github.com:Ocelot-Social-Community/Ocelot-Social into 6866-remove-temp-(x.)ocelot.social-links
# Conflicts: # README.md
This commit is contained in:
commit
1d1bf918f6
3
.github/workflows/check-documentation.yml
vendored
3
.github/workflows/check-documentation.yml
vendored
@ -28,12 +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: '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'
|
||||
base-branch: 'master'
|
||||
|
||||
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\/|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 |
@ -4,7 +4,7 @@ Thank you so much for thinking of contributing to the <!-- [ -->ocelot.social<!-
|
||||
|
||||
## Getting Set Up
|
||||
|
||||
Instructions for how to install all the necessary software and some code guidelines can be found in our main [Readme](/README.md) or in our [documentation](/SUMMARY.md).
|
||||
Instructions for how to install all the necessary software and some code guidelines can be found in our main [Readme](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md) or in our [documentation](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/SUMMARY.md).
|
||||
|
||||
To get you started we recommend that you join forces with a regular contributor. Please join [our Discord instance](https://discord.gg/AJSX9DCSUA) to chat with developers or just get in touch directly on an issue on either [Github](https://github.com/Ocelot-Social-Community/Ocelot-Social/issues) or [Zenhub](https://app.zenhub.com/workspaces/ocelotsocial-5fb21ff922cb410015dd6535/board?filterLogic=any&repos=301151089):
|
||||
|
||||
@ -36,7 +36,7 @@ Every pull request needs to:
|
||||
|
||||
## Contribution Flow For Open Source Contributors
|
||||
|
||||
See [contributing in main README.md](/README.md#contributing)
|
||||
See [contributing in main README.md](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md#contributing)
|
||||
|
||||
## The Team
|
||||
|
||||
@ -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)
|
||||
|
||||
10
README.md
10
README.md
@ -2,7 +2,7 @@
|
||||
|
||||
[](https://github.com/Ocelot-Social-Community/Ocelot-Social/actions)
|
||||
[](https://github.com/Ocelot-Social-Community/Ocelot-Social/actions)
|
||||
[](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/LICENSE.md)
|
||||
[](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/LICENSE.md)
|
||||
[](https://discord.gg/AJSX9DCSUA)
|
||||
[](https://www.codetriage.com/ocelot-social-community/ocelot-social)
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
<!-- 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%">
|
||||
<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 -->
|
||||
@ -75,7 +75,7 @@ If you're wondering how you could help, there are plenty of ways, e.g.:
|
||||
- Promote it on your social networks.
|
||||
- Tell your friends about it by word-of-mouth.
|
||||
- Write a press article on ocelot.social or contact the editorial office of your local news page or radio station.
|
||||
- Take a [good first issue](https://github.com/Ocelot-Social-Community/Ocelot-Social/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) or issues that need help. Make sure to read [CONTRIBUTING.md](/CONTRIBUTING.md) first though.
|
||||
- Take a [good first issue](https://github.com/Ocelot-Social-Community/Ocelot-Social/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) or issues that need help. Make sure to read [CONTRIBUTING.md](./CONTRIBUTING.md) first though.
|
||||
- Testing and [reporting](https://github.com/Ocelot-Social-Community/Ocelot-Social/issues/new/choose) bugs.
|
||||
- Translating: Please [contact us](#contact).
|
||||
- Reviewing and testing pull requests.
|
||||
@ -251,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
|
||||
|
||||
@ -305,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 %}
|
||||
:::
|
||||
|
||||
@ -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).
|
||||
|
||||
@ -11,7 +11,7 @@ $ minikube dashboard
|
||||
|
||||
This will give you an overview. Some of the steps below need some timing to make resources available to other dependent deployments. Keeping an eye on the dashboard is a great way to check that.
|
||||
|
||||
Follow the installation instruction for [Kubernetes with Helm](./kubernetes/README.md).
|
||||
Follow the installation instruction for [Kubernetes with Helm](./src/kubernetes/README.md).
|
||||
|
||||
If all the pods and services have settled and everything looks green in your
|
||||
minikube dashboard, expose the services you want on your host system.
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# Ocelot.Social Deploy And Rebranding
|
||||
|
||||
[](https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/actions)
|
||||
[](https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/blob/LICENSE.md)
|
||||
[](https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/blob/master/LICENSE.md)
|
||||
[](https://discord.gg/AJSX9DCSUA)
|
||||
[](https://www.codetriage.com/ocelot-social-community/ocelot-social-deploy-rebranding)
|
||||
|
||||
@ -41,16 +41,18 @@ Fork this repository to configure and rebrand it for your own [ocelot.social](ht
|
||||
|
||||
Write your own data into the main configuration file:
|
||||
|
||||
- [package.json](/package.json)
|
||||
- [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
|
||||
|
||||
@ -73,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.
|
||||
|
||||
@ -102,9 +104,9 @@ See the login details and browser addresses above.
|
||||
|
||||
### Deployment
|
||||
|
||||
Afterwards you can [deploy](/deployment/deployment.md) it on your server:
|
||||
Afterwards you can [deploy](./deployment.md) it on your server:
|
||||
|
||||
- [Kubernetes with Helm](/deployment/kubernetes/README.md)
|
||||
- [Kubernetes with Helm](./src/kubernetes/README.md)
|
||||
|
||||
## Developer Chat
|
||||
|
||||
@ -133,7 +135,7 @@ 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.
|
||||
@ -4,14 +4,14 @@ 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](/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
|
||||
|
||||
You have the following options for a deployment:
|
||||
|
||||
- [Kubernetes with Helm](./kubernetes/README.md)
|
||||
- [Kubernetes with Helm](./src/kubernetes/README.md)
|
||||
|
||||
## After Deployment
|
||||
|
||||
|
||||
@ -68,17 +68,17 @@ Take one of the IPs of perhaps two or more droplets in your cluster from the lis
|
||||
To understand what makes sense to do when managing your DNS with DigitalOcean, you need to know how DNS works:
|
||||
|
||||
DNS means `Domain Name System`. It resolves domains like `example.com` into an IP like `123.123.123.123`.
|
||||
DigitalOcean is not a domain registrar, but provides a DNS management service. If you use DigitalOcean's DNS management service, you can configure [your cluster](/deployment/kubernetes/README.md#dns) to always resolve the domain to the correct IP and automatically update it for that.
|
||||
DigitalOcean is not a domain registrar, but provides a DNS management service. If you use DigitalOcean's DNS management service, you can configure [your cluster](./README.md#dns) to always resolve the domain to the correct IP and automatically update it for that.
|
||||
The IPs of the DigitalOcean machines are not necessarily stable, so the cluster's DNS service will update the DNS records managed by DigitalOcean to the new IP as needed.
|
||||
|
||||
***CAUTION:** If you are using an external DNS, you currently have to do this manually, which can cause downtime.*
|
||||
|
||||
## Deploy
|
||||
|
||||
Yeah, you're done here. Back to [Deployment with Helm for Kubernetes](/deployment/src/kubernetes/README.md).
|
||||
Yeah, you're done here. Back to [Deployment with Helm for Kubernetes](./README.md).
|
||||
|
||||
## Backups On DigitalOcean
|
||||
|
||||
You can and should do [backups](/deployment/kubernetes/Backup.md) with Kubernetes for sure.
|
||||
You can and should do [backups](./Backup.md) with Kubernetes for sure.
|
||||
|
||||
Additional to backup and copying the Neo4j database dump and the backend images you can do a volume snapshot on DigitalOcean at the moment you have the database in sleep mode.
|
||||
|
||||
@ -9,7 +9,7 @@ Please contact us if you are interested in options not listed below.
|
||||
|
||||
Managed Kubernetes:
|
||||
|
||||
- [DigitalOcean](/deployment/src/kubernetes/DigitalOcean.md)
|
||||
- [DigitalOcean](./DigitalOcean.md)
|
||||
|
||||
## Configuration
|
||||
|
||||
@ -165,7 +165,7 @@ $ doctl compute firewall get <ID> --context <context-name>
|
||||
|
||||
***ATTENTION:** This seems not to work at all so we leave it away at the moment*
|
||||
|
||||
***TODO:** I thought this is necessary if we use the DigitalOcean DNS management service? See [Manage DNS With DigitalOcean](/deployment/kubernetes/DigitalOcean.md#manage-dns-with-digitalocean)*
|
||||
***TODO:** I thought this is necessary if we use the DigitalOcean DNS management service? See [Manage DNS With DigitalOcean](./DigitalOcean.md#manage-dns-with-digitalocean)*
|
||||
|
||||
This chart is only necessary (recommended is more precise) if you run DigitalOcean without load balancer.
|
||||
You need to generate an access token with read + write for the `dns.values.yaml` at <https://cloud.digitalocean.com/account/api/tokens> and fill it in.
|
||||
@ -280,9 +280,9 @@ helm uninstall ocelot \
|
||||
|
||||
## Backups
|
||||
|
||||
You can and should do [backups](/deployment/kubernetes/Backup.md) with Kubernetes for sure.
|
||||
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
|
||||
```
|
||||
16644
package-lock.json
generated
Normal file
16644
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -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,6 +26,8 @@
|
||||
"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",
|
||||
"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\")"
|
||||
@ -58,6 +59,11 @@
|
||||
"slug": "^8.2.3",
|
||||
"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",
|
||||
"nan": "2.17.0"
|
||||
|
||||
@ -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/`.
|
||||
|
||||
:::
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user