Merge pull request #3 from wir-social/wir-social
chore: [WIP] 🍰 Wir.Social First Logo Branding And 'base‘, 'code‘ Deployment
134
.github/workflows/publish.yml
vendored
@ -4,8 +4,51 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
# - wir-social # for testing while developing
|
||||
|
||||
jobs:
|
||||
##############################################################################
|
||||
# JOB: DOCKER BUILD COMMUNITY NEO4J ##########################################
|
||||
##############################################################################
|
||||
build_branded_neo4j:
|
||||
name: Docker Build Branded - Neo4j Community
|
||||
runs-on: ubuntu-latest
|
||||
#needs: [nothing]
|
||||
steps:
|
||||
##########################################################################
|
||||
# CHECKOUT CODE ##########################################################
|
||||
##########################################################################
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
##########################################################################
|
||||
# SET ENVS ###############################################################
|
||||
##########################################################################
|
||||
- name: ENV - VERSION
|
||||
run: echo "VERSION=$(node -p -e "require('./package.json').version")" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_DATE
|
||||
run: echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV
|
||||
- name: ENV - OCELOT_DOCKER_VERSION_TAG
|
||||
run: echo "OCELOT_DOCKER_VERSION_TAG=$(node -p -e "require('./package.json').ocelotDockerVersionTag")" >> $GITHUB_ENV
|
||||
- name: ENV - DOCKER_ORGANISATION
|
||||
run: echo "DOCKER_ORGANISATION=$(node -p -e "require('./package.json').dockerOrganisation")" >> $GITHUB_ENV
|
||||
# this is based on the node Docker version tag "node:12.19.0-alpine3.10" and looks like "app-branded:1.0.2-3-ocelot.social1.0.2-79"
|
||||
- name: ENV - BUILD_VERSION
|
||||
run: echo "BUILD_VERSION=${VERSION}-${GITHUB_RUN_NUMBER}-ocelot.social${OCELOT_DOCKER_VERSION_TAG}" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_COMMIT
|
||||
run: echo "BUILD_COMMIT=${GITHUB_SHA}" >> $GITHUB_ENV
|
||||
##########################################################################
|
||||
# BUILD NEO4J DOCKER IMAGE (community-branded) ###########################
|
||||
##########################################################################
|
||||
- name: Neo4j | Build `community-branded` image
|
||||
run: |
|
||||
docker build --target community-branded -t "${DOCKER_ORGANISATION}/neo4j-community-branded:latest" -t "${DOCKER_ORGANISATION}/neo4j-community-branded:${VERSION}" -t "${DOCKER_ORGANISATION}/neo4j-community-branded:${BUILD_VERSION}" -f docker/neo4j.Dockerfile --build-arg "APP_IMAGE_TAG=${OCELOT_DOCKER_VERSION_TAG}" .
|
||||
docker save "${DOCKER_ORGANISATION}/neo4j-community-branded" > /tmp/neo4j-community-branded.tar
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: docker-neo4j-community-branded
|
||||
path: /tmp/neo4j-community-branded.tar
|
||||
|
||||
##############################################################################
|
||||
# JOB: DOCKER BUILD BRANDED BACKEND ##########################################
|
||||
##############################################################################
|
||||
@ -26,17 +69,22 @@ jobs:
|
||||
run: echo "VERSION=$(node -p -e "require('./package.json').version")" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_DATE
|
||||
run: echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV
|
||||
- name: ENV - OCELOT_DOCKER_VERSION_TAG
|
||||
run: echo "OCELOT_DOCKER_VERSION_TAG=$(node -p -e "require('./package.json').ocelotDockerVersionTag")" >> $GITHUB_ENV
|
||||
- name: ENV - DOCKER_ORGANISATION
|
||||
run: echo "DOCKER_ORGANISATION=$(node -p -e "require('./package.json').dockerOrganisation")" >> $GITHUB_ENV
|
||||
# this is based on the node Docker version tag "node:12.19.0-alpine3.10" and looks like "app-branded:1.0.2-3-ocelot.social1.0.2-79"
|
||||
- name: ENV - BUILD_VERSION
|
||||
run: echo "BUILD_VERSION=${VERSION}.${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
|
||||
run: echo "BUILD_VERSION=${VERSION}-${GITHUB_RUN_NUMBER}-ocelot.social${OCELOT_DOCKER_VERSION_TAG}" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_COMMIT
|
||||
run: echo "BUILD_COMMIT=${GITHUB_SHA}" >> $GITHUB_ENV
|
||||
##########################################################################
|
||||
# BUILD BACKEND DOCKER IMAGE (branded) ################################
|
||||
##########################################################################
|
||||
- name: backend | Build `branded` image
|
||||
- name: Backend | Build `branded` image
|
||||
run: |
|
||||
docker build --target branded -t "ocelotsocialnetwork/backend-branded:latest" -t "ocelotsocialnetwork/backend-branded:${VERSION}" -t "ocelotsocialnetwork/backend-branded:${BUILD_VERSION}" -f docker/backend.Dockerfile .
|
||||
docker save "ocelotsocialnetwork/backend-branded" > /tmp/backend-branded.tar
|
||||
docker build --target branded -t "${DOCKER_ORGANISATION}/backend-branded:latest" -t "${DOCKER_ORGANISATION}/backend-branded:${VERSION}" -t "${DOCKER_ORGANISATION}/backend-branded:${BUILD_VERSION}" -f docker/backend.Dockerfile --build-arg "APP_IMAGE_TAG_CODE=${OCELOT_DOCKER_VERSION_TAG}-code" --build-arg "APP_IMAGE_TAG_BASE=${OCELOT_DOCKER_VERSION_TAG}-base" .
|
||||
docker save "${DOCKER_ORGANISATION}/backend-branded" > /tmp/backend-branded.tar
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
@ -63,17 +111,22 @@ jobs:
|
||||
run: echo "VERSION=$(node -p -e "require('./package.json').version")" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_DATE
|
||||
run: echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV
|
||||
- name: ENV - OCELOT_DOCKER_VERSION_TAG
|
||||
run: echo "OCELOT_DOCKER_VERSION_TAG=$(node -p -e "require('./package.json').ocelotDockerVersionTag")" >> $GITHUB_ENV
|
||||
- name: ENV - DOCKER_ORGANISATION
|
||||
run: echo "DOCKER_ORGANISATION=$(node -p -e "require('./package.json').dockerOrganisation")" >> $GITHUB_ENV
|
||||
# this is based on the node Docker version tag "node:12.19.0-alpine3.10" and looks like "app-branded:1.0.2-3-ocelot.social1.0.2-79"
|
||||
- name: ENV - BUILD_VERSION
|
||||
run: echo "BUILD_VERSION=${VERSION}.${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
|
||||
run: echo "BUILD_VERSION=${VERSION}-${GITHUB_RUN_NUMBER}-ocelot.social${OCELOT_DOCKER_VERSION_TAG}" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_COMMIT
|
||||
run: echo "BUILD_COMMIT=${GITHUB_SHA}" >> $GITHUB_ENV
|
||||
##########################################################################
|
||||
# BUILD WEBAPP DOCKER IMAGE (build) ######################################
|
||||
##########################################################################
|
||||
- name: webapp | Build `branded` image
|
||||
- name: Webapp | Build `branded` image
|
||||
run: |
|
||||
docker build --target branded -t "ocelotsocialnetwork/webapp-branded:latest" -t "ocelotsocialnetwork/webapp-branded:${VERSION}" -t "ocelotsocialnetwork/webapp-branded:${BUILD_VERSION}" -f docker/webapp.Dockerfile .
|
||||
docker save "ocelotsocialnetwork/webapp-branded" > /tmp/webapp-branded.tar
|
||||
docker build --target branded -t "${DOCKER_ORGANISATION}/webapp-branded:latest" -t "${DOCKER_ORGANISATION}/webapp-branded:${VERSION}" -t "${DOCKER_ORGANISATION}/webapp-branded:${BUILD_VERSION}" -f docker/webapp.Dockerfile --build-arg "APP_IMAGE_TAG_CODE=${OCELOT_DOCKER_VERSION_TAG}-code" --build-arg "APP_IMAGE_TAG_BASE=${OCELOT_DOCKER_VERSION_TAG}-base" .
|
||||
docker save "${DOCKER_ORGANISATION}/webapp-branded" > /tmp/webapp-branded.tar
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
@ -100,17 +153,22 @@ jobs:
|
||||
run: echo "VERSION=$(node -p -e "require('./package.json').version")" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_DATE
|
||||
run: echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV
|
||||
- name: ENV - OCELOT_DOCKER_VERSION_TAG
|
||||
run: echo "OCELOT_DOCKER_VERSION_TAG=$(node -p -e "require('./package.json').ocelotDockerVersionTag")" >> $GITHUB_ENV
|
||||
- name: ENV - DOCKER_ORGANISATION
|
||||
run: echo "DOCKER_ORGANISATION=$(node -p -e "require('./package.json').dockerOrganisation")" >> $GITHUB_ENV
|
||||
# this is based on the node Docker version tag "node:12.19.0-alpine3.10" and looks like "app-branded:1.0.2-3-ocelot.social1.0.2-79"
|
||||
- name: ENV - BUILD_VERSION
|
||||
run: echo "BUILD_VERSION=${VERSION}.${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
|
||||
run: echo "BUILD_VERSION=${VERSION}-${GITHUB_RUN_NUMBER}-ocelot.social${OCELOT_DOCKER_VERSION_TAG}" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_COMMIT
|
||||
run: echo "BUILD_COMMIT=${GITHUB_SHA}" >> $GITHUB_ENV
|
||||
##########################################################################
|
||||
# BUILD MAINTENANCE DOCKER IMAGE (build) #################################
|
||||
##########################################################################
|
||||
- name: maintenance | Build `branded` image
|
||||
- name: Maintenance | Build `branded` image
|
||||
run: |
|
||||
docker build --target branded -t "ocelotsocialnetwork/maintenance-branded:latest" -t "ocelotsocialnetwork/maintenance-branded:${VERSION}" -t "ocelotsocialnetwork/maintenance-branded:${BUILD_VERSION}" -f docker/maintenance.Dockerfile .
|
||||
docker save "ocelotsocialnetwork/maintenance-branded" > /tmp/maintenance-branded.tar
|
||||
docker build --target branded -t "${DOCKER_ORGANISATION}/maintenance-branded:latest" -t "${DOCKER_ORGANISATION}/maintenance-branded:${VERSION}" -t "${DOCKER_ORGANISATION}/maintenance-branded:${BUILD_VERSION}" -f docker/maintenance.Dockerfile --build-arg "APP_IMAGE_TAG_CODE=${OCELOT_DOCKER_VERSION_TAG}-code" --build-arg "APP_IMAGE_TAG_BASE=${OCELOT_DOCKER_VERSION_TAG}-base" .
|
||||
docker save "${DOCKER_ORGANISATION}/maintenance-branded" > /tmp/maintenance-branded.tar
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
@ -123,7 +181,7 @@ jobs:
|
||||
upload_to_dockerhub:
|
||||
name: Upload to Dockerhub
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build_branded_backend,build_branded_webapp,build_branded_maintenance]
|
||||
needs: [build_branded_neo4j,build_branded_backend,build_branded_webapp,build_branded_maintenance]
|
||||
env:
|
||||
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
@ -134,8 +192,33 @@ jobs:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
##########################################################################
|
||||
# SET ENVS ###############################################################
|
||||
##########################################################################
|
||||
- name: ENV - VERSION
|
||||
run: echo "VERSION=$(node -p -e "require('./package.json').version")" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_DATE
|
||||
run: echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV
|
||||
- name: ENV - OCELOT_DOCKER_VERSION_TAG
|
||||
run: echo "OCELOT_DOCKER_VERSION_TAG=$(node -p -e "require('./package.json').ocelotDockerVersionTag")" >> $GITHUB_ENV
|
||||
- name: ENV - DOCKER_ORGANISATION
|
||||
run: echo "DOCKER_ORGANISATION=$(node -p -e "require('./package.json').dockerOrganisation")" >> $GITHUB_ENV
|
||||
# this is based on the node Docker version tag "node:12.19.0-alpine3.10" and looks like "app-branded:1.0.2-3-ocelot.social1.0.2-79"
|
||||
- name: ENV - BUILD_VERSION
|
||||
run: echo "BUILD_VERSION=${VERSION}-${GITHUB_RUN_NUMBER}-ocelot.social${OCELOT_DOCKER_VERSION_TAG}" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_COMMIT
|
||||
run: echo "BUILD_COMMIT=${GITHUB_SHA}" >> $GITHUB_ENV
|
||||
##########################################################################
|
||||
# DOWNLOAD DOCKER IMAGES #################################################
|
||||
##########################################################################
|
||||
# Neo4j Community
|
||||
- name: Download Docker Image (Neo4j Community)
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: docker-neo4j-community-branded
|
||||
path: /tmp
|
||||
- name: Load Docker Image
|
||||
run: docker load < /tmp/neo4j-community-branded.tar
|
||||
# Backend
|
||||
- name: Download Docker Image (Backend)
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
@ -143,13 +226,15 @@ jobs:
|
||||
path: /tmp
|
||||
- name: Load Docker Image
|
||||
run: docker load < /tmp/backend-branded.tar
|
||||
- name: Download Docker Image (WebApp)
|
||||
# Webapp
|
||||
- name: Download Docker Image (Webapp)
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: docker-webapp-branded
|
||||
path: /tmp
|
||||
- name: Load Docker Image
|
||||
run: docker load < /tmp/webapp-branded.tar
|
||||
# Maintenance
|
||||
- name: Download Docker Image (Maintenance)
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
@ -162,12 +247,14 @@ jobs:
|
||||
##########################################################################
|
||||
- name: login to dockerhub
|
||||
run: echo "${DOCKERHUB_TOKEN}" | docker login -u "${DOCKERHUB_USERNAME}" --password-stdin
|
||||
- name: Push backend
|
||||
run: docker push --all-tags ocelotsocialnetwork/backend-branded
|
||||
- name: Push webapp
|
||||
run: docker push --all-tags ocelotsocialnetwork/webapp-branded
|
||||
- name: Push maintenance
|
||||
run: docker push --all-tags ocelotsocialnetwork/maintenance-branded
|
||||
- name: Push Neo4j Community
|
||||
run: docker push --all-tags ${DOCKER_ORGANISATION}/neo4j-community-branded
|
||||
- name: Push Backend
|
||||
run: docker push --all-tags ${DOCKER_ORGANISATION}/backend-branded
|
||||
- name: Push Webapp
|
||||
run: docker push --all-tags ${DOCKER_ORGANISATION}/webapp-branded
|
||||
- name: Push Maintenance
|
||||
run: docker push --all-tags ${DOCKER_ORGANISATION}/maintenance-branded
|
||||
|
||||
##############################################################################
|
||||
# JOB: GITHUB TAG LATEST VERSION #############################################
|
||||
@ -191,8 +278,13 @@ jobs:
|
||||
run: echo "VERSION=$(node -p -e "require('./package.json').version")" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_DATE
|
||||
run: echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV
|
||||
- name: ENV - OCELOT_DOCKER_VERSION_TAG
|
||||
run: echo "OCELOT_DOCKER_VERSION_TAG=$(node -p -e "require('./package.json').ocelotDockerVersionTag")" >> $GITHUB_ENV
|
||||
- name: ENV - DOCKER_ORGANISATION
|
||||
run: echo "DOCKER_ORGANISATION=$(node -p -e "require('./package.json').dockerOrganisation")" >> $GITHUB_ENV
|
||||
# this is based on the node Docker version tag "node:12.19.0-alpine3.10" and looks like "app-branded:1.0.2-3-ocelot.social1.0.2-79"
|
||||
- name: ENV - BUILD_VERSION
|
||||
run: echo "BUILD_VERSION=${VERSION}.${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
|
||||
run: echo "BUILD_VERSION=${VERSION}-${GITHUB_RUN_NUMBER}-ocelot.social${OCELOT_DOCKER_VERSION_TAG}" >> $GITHUB_ENV
|
||||
- name: ENV - BUILD_COMMIT
|
||||
run: echo "BUILD_COMMIT=${GITHUB_SHA}" >> $GITHUB_ENV
|
||||
##########################################################################
|
||||
|
||||
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.DS_Store
|
||||
11
LICENSE.md
Normal file
@ -0,0 +1,11 @@
|
||||
# LICENSE
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright \(c\) 2021 by the [ocelot.social community](https://github.com/Ocelot-Social-Community)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files \(the "Software"\), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
69
README.md
Normal file
@ -0,0 +1,69 @@
|
||||
# Wir.Social Deploys And Rebrands Ocelot.Social
|
||||
|
||||
This repository is used to rebrand, configure, and deploy the [wir.social](https://wir.social) networks.
|
||||
The forked original repository is [Ocelot-Social-Deploy-Rebranding](https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding).
|
||||
|
||||
<!-- [](https://travis-ci.com/Human-Connection/Human-Connection) -->
|
||||
<!-- [](https://codecov.io/gh/Human-Connection/Human-Connection/) -->
|
||||
<!-- [](https://github.com/Human-Connection/Nitro-Backend/blob/backend/LICENSE.md) -->
|
||||
<!-- [](https://discordapp.com/invite/DFSjPaX) -->
|
||||
<!-- [](https://www.codetriage.com/human-connection/human-connection) -->
|
||||
|
||||
<p align="center">
|
||||
<img src="branding/static/img/custom/logo-squared.svg" alt="wir.social" width="40%" height="40%">
|
||||
</p>
|
||||
|
||||
<!--
|
||||
## Live demo
|
||||
|
||||
__Try out our deployed [development environment](https://develop.human-connection.org/).__
|
||||
|
||||
Logins:
|
||||
|
||||
| email | password | role |
|
||||
| :--- | :--- | :--- |
|
||||
| `user@example.org` | 1234 | user |
|
||||
| `moderator@example.org` | 1234 | moderator |
|
||||
| `admin@example.org` | 1234 | admin |
|
||||
-->
|
||||
|
||||
<!--
|
||||
## Usage
|
||||
|
||||
Fork this repository and configure as well as rebrand it for your own [ocelot.social](https://github.com/Ocelot-Social-Community/Ocelot-Social) network.
|
||||
|
||||
- [Configure And Rebrand](https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding/tree/master/branding)
|
||||
|
||||
Afterwards you can [deploy](deployment/README.md) it on your server:
|
||||
|
||||
- [Kubernetes with Helm](deployment/kubernetes/README.md)
|
||||
-->
|
||||
|
||||
## Developer Chat
|
||||
|
||||
Join our friendly open-source community on [Discord](https://discord.gg/AJSX9DCSUA) :heart_eyes_cat:
|
||||
Just introduce yourself at `#introduce-yourself` and mention `@@Mentor` to get you onboard :neckbeard:
|
||||
Check out the [contribution guideline](https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/CONTRIBUTING.md), too!
|
||||
|
||||
We give write permissions to every developer who asks for it. Just text us on
|
||||
[Discord](https://discord.gg/AJSX9DCSUA).
|
||||
|
||||
## Technology Stack
|
||||
|
||||
- [Kubernetes](https://kubernetes.io)
|
||||
- [Helm](https://helm.sh)
|
||||
- [Docker](https://www.docker.com)
|
||||
|
||||
<!--
|
||||
## Attributions
|
||||
|
||||
Locale Icons made by [Freepik](http://www.freepik.com/) from [www.flaticon.com](https://www.flaticon.com/) is licensed by [CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/).
|
||||
|
||||
Browser compatibility testing with [BrowserStack](https://www.browserstack.com/).
|
||||
|
||||
<img alt="BrowserStack Logo" src=".gitbook/assets/browserstack-logo.svg" width="256">
|
||||
-->
|
||||
|
||||
## License
|
||||
|
||||
See the [LICENSE](LICENSE.md) file for license rights and limitations (MIT).
|
||||
@ -1,4 +1,4 @@
|
||||
export default {
|
||||
SUPPORT: 'hello@ocelot.social',
|
||||
MODERATION: 'hello@ocelot.social',
|
||||
SUPPORT: 'team@wir.social',
|
||||
MODERATION: 'team@wir.social',
|
||||
}
|
||||
|
||||
@ -1,7 +1,13 @@
|
||||
// this file is duplicated in `backend/src/config/links.js` and `webapp/constants/links.js` and replaced on rebranding
|
||||
export default {
|
||||
ORGANIZATION: 'https://ocelot.social',
|
||||
DONATE: 'https://ocelot-social.herokuapp.com/donations',
|
||||
IMPRINT: 'https://ocelot-social.herokuapp.com/imprint',
|
||||
DATA_PRIVACY: 'https://ocelot-social.herokuapp.com/imprint',
|
||||
FAQ: 'https://ocelot-social.herokuapp.com/#kontakt',
|
||||
ORGANIZATION: 'https://webcraft-media.de',
|
||||
SUPPORT: 'https://webcraft-media.de',
|
||||
|
||||
// on null or empty string internal imprint is used, see 'webapp/locales/html/'
|
||||
DONATE: 'https://webcraft-media.de/donate-for-wir-social.html',
|
||||
IMPRINT: 'https://www.webcraft-media.de/#!impressum',
|
||||
DATA_PRIVACY: 'https://www.webcraft-media.de/#!datenschutz',
|
||||
TERMS_AND_CONDITIONS: null,
|
||||
CODE_OF_CONDUCT: null,
|
||||
FAQ: 'https://www.webcraft-media.de/#!contact',
|
||||
}
|
||||
|
||||
10
branding/constants/logos.js
Normal file
@ -0,0 +1,10 @@
|
||||
// this file is duplicated in `backend/src/config/logos.js` and `webapp/constants/logos.js` and replaced on rebranding
|
||||
// this are the paths in the webapp
|
||||
export default {
|
||||
LOGO_HEADER_PATH: '/img/custom/logo-horizontal.svg',
|
||||
LOGO_SIGNUP_PATH: '/img/custom/logo-squared.svg',
|
||||
LOGO_WELCOME_PATH: '/img/custom/logo-squared.svg',
|
||||
LOGO_LOGOUT_PATH: '/img/custom/logo-squared.svg',
|
||||
LOGO_PASSWORD_RESET_PATH: '/img/custom/logo-squared.svg',
|
||||
LOGO_MAINTENACE_RESET_PATH: '/img/custom/logo-squared.svg',
|
||||
}
|
||||
@ -1,8 +1,9 @@
|
||||
// this file is duplicated in `backend/src/config/metadata.js` and `webapp/constants/metadata.js` and replaced on rebranding
|
||||
export default {
|
||||
APPLICATION_NAME: 'ocelot.social',
|
||||
APPLICATION_SHORT_NAME: 'ocelot',
|
||||
APPLICATION_DESCRIPTION: 'Ocelot Social Community',
|
||||
APPLICATION_NAME: 'wir.social',
|
||||
APPLICATION_SHORT_NAME: 'wir.social',
|
||||
APPLICATION_DESCRIPTION: 'Wir Social Community',
|
||||
COOKIE_NAME: 'ocelot-social-token',
|
||||
ORGANIZATION_NAME: 'busFaktor e.V.',
|
||||
ORGANIZATION_JURISDICTION: 'Somewhere',
|
||||
ORGANIZATION_NAME: 'Webcraft-Media',
|
||||
ORGANIZATION_JURISDICTION: 'Deutschland',
|
||||
}
|
||||
|
||||
5
branding/locales/html/de/code-of-conduct.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!-- this file is replaced on rebranding -->
|
||||
|
||||
<p>Ich bin der Inhalt vom Verhaltenskodex</p>
|
||||
<br>
|
||||
<p>Neu gebrandet …</p>
|
||||
5
branding/locales/html/de/data-privacy.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!-- this file is replaced on rebranding -->
|
||||
|
||||
<p>Das hier wäre der Inhalt der Datenschutzbestimmungen</p>
|
||||
<br>
|
||||
<p>Neu gebrandet …</p>
|
||||
5
branding/locales/html/de/faq.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!-- this file is replaced on rebranding -->
|
||||
|
||||
<p>Hier stehen die FAQs</p>
|
||||
<br>
|
||||
<p>Neu gebrandet …</p>
|
||||
5
branding/locales/html/de/imprint.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!-- this file is replaced on rebranding -->
|
||||
|
||||
<p>Ich bin das Impressum</p>
|
||||
<br>
|
||||
<p>Neu gebrandet …</p>
|
||||
5
branding/locales/html/de/terms-and-conditions.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!-- this file is replaced on rebranding -->
|
||||
|
||||
<p>Ich bin der Inhalt der Seite "Nutzungsbedingungen"</p>
|
||||
<br>
|
||||
<p>Neu gebrandet …</p>
|
||||
5
branding/locales/html/en/code-of-conduct.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!-- this file is replaced on rebranding -->
|
||||
|
||||
<p>I am the content of the code of conduct</p>
|
||||
<br>
|
||||
<p>Rebranded …</p>
|
||||
5
branding/locales/html/en/data-privacy.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!-- this file is replaced on rebranding -->
|
||||
|
||||
<p>This would be our data privacy section</p>
|
||||
<br>
|
||||
<p>Rebranded …</p>
|
||||
5
branding/locales/html/en/faq.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!-- this file is replaced on rebranding -->
|
||||
|
||||
<p>Here are the FAQs</p>
|
||||
<br>
|
||||
<p>Rebranded …</p>
|
||||
5
branding/locales/html/en/imprint.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!-- this file is replaced on rebranding -->
|
||||
|
||||
<p>I am the imprint</p>
|
||||
<br>
|
||||
<p>Rebranded …</p>
|
||||
5
branding/locales/html/en/terms-and-conditions.html
Normal file
@ -0,0 +1,5 @@
|
||||
<!-- this file is replaced on rebranding -->
|
||||
|
||||
<p>I am the content of the page "terms and conditions"<p>
|
||||
<br>
|
||||
<p>Rebranded …</p>
|
||||
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 34 KiB |
62
branding/static/img/custom/logo-horizontal.svg
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
1
branding/static/img/custom/logo-squared.svg
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 34 KiB |
@ -5,8 +5,8 @@ version: "1.0.0"
|
||||
# The appVersion defines which docker image is pulled.
|
||||
# Having it set to latest will pull the latest build on dockerhub.
|
||||
# You are free to define a specific version here tho.
|
||||
# e.g. appVersion: "0.6.10"
|
||||
# Be aware that this requires all dockers to have the same version available.
|
||||
# e.g. appVersion: "latest" or "1.0.2-3-ocelot.social1.0.2-79"
|
||||
# Be aware that this requires all your apps to have the same docker image version available.
|
||||
appVersion: "latest"
|
||||
description: The Helm chart for ocelot.social
|
||||
home: https://ocelot.social
|
||||
|
||||
@ -1,40 +1,54 @@
|
||||
# Helm installation of Ocelot.social
|
||||
# Helm Installation Of Ocelot.Social
|
||||
|
||||
Deploying Ocelot.social with Helm is very straight forward. All you have to do is to change certain parameters, like domain names and API keys, then you just install our provided Helm chart to your cluster.
|
||||
Deploying *ocelot.social* with Helm is very straight forward. All you have to do is to change certain parameters, like domain names and API keys, then you just install our provided Helm chart to your cluster.
|
||||
|
||||
## Configuration
|
||||
|
||||
You can customize the network with your configuration by changing the `values.yaml`, all variables will be available as environment variables in your deployed kubernetes pods. For more details refer to the `values.yaml.dist` file.
|
||||
You can customize the network with your configuration by duplicate the `values.template.yaml` to a new `values.yaml` file and change it to your need. All included variables will be available as environment variables in your deployed kubernetes pods.
|
||||
|
||||
Besides the `values.yaml.dist` file we provide a `nginx.values.yaml.dist` and `dns.values.yaml.dist`. The `nginx.values.yaml` is the configuration for the ingress-nginx helm chart, while the `dns.values.yaml` file is for automatically updating the dns values on digital ocean and therefore optional.
|
||||
|
||||
As hinted above you should copy the given files and rename them accordingly. Then go ahead and modify the values in the newly created files accordingly.
|
||||
Besides the `values.template.yaml` file we provide a `nginx.values.template.yaml` and `dns.values.template.yaml` for a similar procedure. The new `nginx.values.yaml` is the configuration for the ingress-nginx Helm chart, while the `dns.values.yaml` file is for automatically updating the dns values on digital ocean and therefore optional.
|
||||
|
||||
## Installation
|
||||
|
||||
Due to the many limitations of Helm you still have to do several manual steps. Those occur before you run the actual ocelot helm chart. Obviously it is expected of you to have `helm` and `kubectl` installed. For Digital Ocean you might require `doctl` aswell.
|
||||
Due to the many limitations of Helm you still have to do several manual steps. Those occur before you run the actual *ocelot.social* Helm chart. Obviously it is expected of you to have `helm` and `kubectl` installed. For Digital Ocean you might require `doctl` aswell.
|
||||
|
||||
### Cert Manager (https)
|
||||
|
||||
Please refer to [cert-manager.io docs](https://cert-manager.io/docs/installation/kubernetes/) for more details.
|
||||
|
||||
***ATTENTION:*** *Be with the Terminal in your repository in the folder of this README.*
|
||||
|
||||
1. Create Namespace
|
||||
|
||||
```bash
|
||||
kubectl --kubeconfig=/../kubeconfig.yaml create namespace cert-manager
|
||||
# kubeconfig.yaml set globaly
|
||||
$ kubectl create namespace cert-manager
|
||||
# or kubeconfig.yaml in your repo, then adjust
|
||||
$ kubectl --kubeconfig=/../kubeconfig.yaml create namespace cert-manager
|
||||
```
|
||||
|
||||
2. Add Helm Repo & update
|
||||
2. Add Helm repository and update
|
||||
|
||||
```bash
|
||||
helm repo add jetstack https://charts.jetstack.io
|
||||
helm repo update
|
||||
$ helm repo add jetstack https://charts.jetstack.io
|
||||
$ helm repo update
|
||||
```
|
||||
|
||||
3. Install Cert-Manager Helm chart
|
||||
|
||||
```bash
|
||||
# this can not be included sine the CRDs cant be installed properly via helm...
|
||||
helm --kubeconfig=/../kubeconfig.yaml \
|
||||
# option 1
|
||||
# this can't be applied via kubectl to our cluster since the CRDs can't be installed properly this way ...
|
||||
# $ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.3.1/cert-manager.crds.yaml
|
||||
|
||||
# option 2
|
||||
# kubeconfig.yaml set globaly
|
||||
$ helm install cert-manager jetstack/cert-manager \
|
||||
--namespace cert-manager \
|
||||
--version v1.1.0 \
|
||||
--set installCRDs=true
|
||||
# or kubeconfig.yaml in your repo, then adjust
|
||||
$ helm --kubeconfig=/../kubeconfig.yaml \
|
||||
install cert-manager jetstack/cert-manager \
|
||||
--namespace cert-manager \
|
||||
--version v1.1.0 \
|
||||
@ -43,15 +57,20 @@ helm --kubeconfig=/../kubeconfig.yaml \
|
||||
|
||||
### Ingress-Nginx
|
||||
|
||||
1. Add Helm Repo & update
|
||||
1. Add Helm repository and update
|
||||
|
||||
```bash
|
||||
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
|
||||
helm repo update
|
||||
$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
|
||||
$ helm repo update
|
||||
```
|
||||
|
||||
2. Install ingress-nginx
|
||||
|
||||
```bash
|
||||
helm --kubeconfig=/../kubeconfig.yaml install ingress-nginx ingress-nginx/ingress-nginx -f nginx.values.yaml
|
||||
# kubeconfig.yaml set globaly
|
||||
$ helm install ingress-nginx ingress-nginx/ingress-nginx -f nginx.values.yaml
|
||||
# or kubeconfig.yaml in your repo, then adjust
|
||||
$ helm --kubeconfig=/../kubeconfig.yaml install ingress-nginx ingress-nginx/ingress-nginx -f nginx.values.yaml
|
||||
```
|
||||
|
||||
### Digital Ocean Firewall
|
||||
@ -61,56 +80,101 @@ This is only necessary if you run Digital Ocean without load balancer ([see here
|
||||
1. Authenticate towards DO with your local `doctl`
|
||||
|
||||
You will need a DO token for that.
|
||||
|
||||
```bash
|
||||
doctl auth init
|
||||
# without doctl context
|
||||
$ doctl auth init
|
||||
# with doctl new context to be filled in
|
||||
$ doctl auth init --context <new-context-name>
|
||||
```
|
||||
|
||||
You will need an API token, which you can generate in the control panel at <https://cloud.digitalocean.com/account/api/tokens> .
|
||||
|
||||
2. Generate DO firewall
|
||||
|
||||
Fill in the `CLUSTER_UUID` and `your-domain` (Get the `CLUSTER_UUID` value from the dashboard or the ID column from doctl kubernetes cluster list.):
|
||||
|
||||
```bash
|
||||
doctl compute firewall create \
|
||||
# without doctl context
|
||||
$ doctl compute firewall create \
|
||||
--inbound-rules="protocol:tcp,ports:80,address:0.0.0.0/0,address:::/0 protocol:tcp,ports:443,address:0.0.0.0/0,address:::/0" \
|
||||
--tag-names=k8s:1ebf0cdc-86c9-4384-936b-40010b71d049 \
|
||||
--name=my-domain-http-https
|
||||
--tag-names=k8s:<CLUSTER_UUID> \
|
||||
--name=<your-domain>-http-https
|
||||
# with doctl context to be filled in
|
||||
$ doctl compute firewall create \
|
||||
--inbound-rules="protocol:tcp,ports:80,address:0.0.0.0/0,address:::/0 protocol:tcp,ports:443,address:0.0.0.0/0,address:::/0" \
|
||||
--tag-names=k8s:<CLUSTER_UUID> \
|
||||
--name=<your-domain>-http-https --context <context-name>
|
||||
```
|
||||
|
||||
To get informations about your success use this command. (Fill in the `ID` you got at creation.):
|
||||
|
||||
```bash
|
||||
# without doctl context
|
||||
$ doctl compute firewall get <ID>
|
||||
# with doctl context to be filled in
|
||||
$ doctl compute firewall get <ID> --context <context-name>
|
||||
```
|
||||
|
||||
### DNS
|
||||
|
||||
This chart is only necessary (recommended is more precise) if you run Digital Ocean without load balancer.
|
||||
You need to generate a token for the `dns.values.yaml`.
|
||||
This chart is only necessary (recommended is more precise) if you run Digital Ocean 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.
|
||||
|
||||
1. Add Helm repository and update
|
||||
|
||||
1. Add Helm Repo & update
|
||||
```bash
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
helm repo update
|
||||
$ helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
$ helm repo update
|
||||
```
|
||||
|
||||
2. Install DNS
|
||||
|
||||
```bash
|
||||
helm --kubeconfig=/../kubeconfig.yaml install dns bitnami/external-dns -f dns.values.yaml
|
||||
# kubeconfig.yaml set globaly
|
||||
$ helm install dns bitnami/external-dns -f dns.values.yaml
|
||||
# or kubeconfig.yaml in your repo, then adjust
|
||||
$ helm --kubeconfig=/../kubeconfig.yaml install dns bitnami/external-dns -f dns.values.yaml
|
||||
```
|
||||
|
||||
### Ocelot.social
|
||||
### Ocelot.Social
|
||||
|
||||
All commands for ocelot need to be executed in the kubernetes folder. Therefore `cd deployment/kubernetes/` is expected to be run before every command. Furthermore the given commands will install ocelot into the default namespace. This can be modified to by attaching `--namespace not.default`.
|
||||
|
||||
#### Install
|
||||
|
||||
Only run once for the first time of installation:
|
||||
|
||||
```bash
|
||||
helm --kubeconfig=/../kubeconfig.yaml install ocelot ./
|
||||
# kubeconfig.yaml set globaly
|
||||
$ helm install ocelot ./
|
||||
# or kubeconfig.yaml in your repo, then adjust
|
||||
$ helm --kubeconfig=/../kubeconfig.yaml install ocelot ./
|
||||
```
|
||||
|
||||
#### Upgrade
|
||||
#### Upgrade & Update
|
||||
|
||||
Run for all upgrades and updates:
|
||||
|
||||
```bash
|
||||
helm --kubeconfig=/../kubeconfig.yaml upgrade ocelot ./
|
||||
# kubeconfig.yaml set globaly
|
||||
$ helm upgrade ocelot ./
|
||||
# or kubeconfig.yaml in your repo, then adjust
|
||||
$ helm --kubeconfig=/../kubeconfig.yaml upgrade ocelot ./
|
||||
```
|
||||
|
||||
#### Uninstall
|
||||
|
||||
Be aware that if you uninstall ocelot the formerly bound volumes become unbound. Those volumes contain all data from uploads and database. You have to manually free their reference in order to bind them again when reinstalling. Once unbound from their former container references they should automatically be rebound (considering the sizes did not change)
|
||||
|
||||
```bash
|
||||
helm --kubeconfig=/../kubeconfig.yaml uninstall ocelot
|
||||
# kubeconfig.yaml set globaly
|
||||
$ helm uninstall ocelot
|
||||
# or kubeconfig.yaml in your repo, then adjust
|
||||
$ helm --kubeconfig=/../kubeconfig.yaml uninstall ocelot
|
||||
```
|
||||
|
||||
## 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
|
||||
@ -125,4 +189,4 @@ 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 Digital Ocean's kubernetes clusters do not fulfill the requirements.
|
||||
Apparently Digital Ocean's kubernetes clusters do not fulfill the requirements.
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
# please duplicate template file and rename to "dns.values.yaml" and fill in your value
|
||||
|
||||
provider: digitalocean
|
||||
digitalocean:
|
||||
# create the API token at https://cloud.digitalocean.com/account/api/tokens
|
||||
@ -1,3 +1,5 @@
|
||||
# please duplicate template file and rename to "nginx.values.yaml" and fill in your value
|
||||
|
||||
controller:
|
||||
kind: DaemonSet
|
||||
hostNetwork: true
|
||||
@ -1,13 +1,16 @@
|
||||
# Change all the below if needed
|
||||
# please duplicate template file and rename to "values.yaml" and fill in your value
|
||||
|
||||
# change all the below if needed
|
||||
PUBLIC_REGISTRATION: false
|
||||
INVITE_REGISTRATION: false
|
||||
|
||||
BACKEND:
|
||||
# Change all the below if needed
|
||||
# change all the below if needed
|
||||
# DOCKER_IMAGE_REPO - change that to your branded docker image
|
||||
# Label is appended based on .Chart.appVersion
|
||||
DOCKER_IMAGE_REPO: "ocelotsocialnetwork/backend"
|
||||
# label is appended based on .Chart.appVersion
|
||||
DOCKER_IMAGE_REPO: "ocelotsocialnetwork/backend-branded"
|
||||
CLIENT_URI: "https://staging.ocelot.social"
|
||||
# create a new one for your network
|
||||
JWT_SECRET: "b/&&7b78BF&fv/Vd"
|
||||
MAPBOX_TOKEN: "pk.eyJ1IjoiYnVzZmFrdG9yIiwiYSI6ImNraDNiM3JxcDBhaWQydG1uczhpZWtpOW4ifQ.7TNRTO-o9aK1Y6MyW_Nd4g"
|
||||
PRIVATE_KEY_PASSPHRASE: "a7dsf78sadg87ad87sfagsadg78"
|
||||
@ -17,9 +20,9 @@ BACKEND:
|
||||
SMTP_PASSWORD: "devops@ocelot.social"
|
||||
SMTP_PORT: "465"
|
||||
SMTP_IGNORE_TLS: 'true'
|
||||
SMTP_SECURE: 'false'
|
||||
SMTP_SECURE: 'false' # true for 465, false for other ports
|
||||
|
||||
# Most likely you don't need to change this
|
||||
# most likely you don't need to change this
|
||||
MIN_READY_SECONDS: "15"
|
||||
PROGRESS_DEADLINE_SECONDS: "60"
|
||||
REVISIONS_HISTORY_LIMIT: "25"
|
||||
@ -29,10 +32,10 @@ BACKEND:
|
||||
STORAGE_UPLOADS: "25Gi"
|
||||
|
||||
WEBAPP:
|
||||
# Change all the below if needed
|
||||
# change all the below if needed
|
||||
# DOCKER_IMAGE_REPO - change that to your branded docker image
|
||||
# Label is appended based on .Chart.appVersion
|
||||
DOCKER_IMAGE_REPO: "ocelotsocialnetwork/webapp"
|
||||
# label is appended based on .Chart.appVersion
|
||||
DOCKER_IMAGE_REPO: "ocelotsocialnetwork/webapp-branded"
|
||||
WEBSOCKETS_URI: "wss://staging.ocelot.social/api/graphql"
|
||||
|
||||
# Most likely you don't need to change this
|
||||
@ -45,9 +48,9 @@ WEBAPP:
|
||||
DOCKER_IMAGE_PULL_POLICY: "Always"
|
||||
|
||||
NEO4J:
|
||||
# Most likely you don't need to change this
|
||||
# most likely you don't need to change this
|
||||
REVISIONS_HISTORY_LIMIT: "25"
|
||||
DOCKER_IMAGE_REPO: "ocelotsocialnetwork/neo4j"
|
||||
DOCKER_IMAGE_REPO: "ocelotsocialnetwork/neo4j-community-branded"
|
||||
DOCKER_IMAGE_PULL_POLICY: "Always"
|
||||
CONTAINER_RESTART_POLICY: "Always"
|
||||
CONTAINER_TERMINATION_GRACE_PERIOD_SECONDS: "30"
|
||||
@ -73,10 +76,10 @@ NEO4J:
|
||||
DBMS_SECURITY_PROCEDURES_UNRESTRICTED: "algo.*,apoc.*"
|
||||
|
||||
MAINTENANCE:
|
||||
# Change all the below if needed
|
||||
# change all the below if needed
|
||||
# DOCKER_IMAGE_REPO - change that to your branded docker image
|
||||
# Label is appended based on .Chart.appVersion
|
||||
DOCKER_IMAGE_REPO: "ocelotsocialnetwork/maintenance"
|
||||
# label is appended based on .Chart.appVersion
|
||||
DOCKER_IMAGE_REPO: "ocelotsocialnetwork/maintenance-branded"
|
||||
|
||||
# Most likely you don't need to change this
|
||||
REVISIONS_HISTORY_LIMIT: "25"
|
||||
@ -85,7 +88,7 @@ MAINTENANCE:
|
||||
DOCKER_IMAGE_PULL_POLICY: "Always"
|
||||
|
||||
LETSENCRYPT:
|
||||
# Change all the below if needed
|
||||
# change all the below if needed
|
||||
# ISSUER is used by cert-manager to set up certificates with the given provider.
|
||||
# change it to "letsencrypt-production" once you are ready to have valid cetrificates.
|
||||
# Be aware that the is an issuing limit with letsencrypt, so a dry run with staging might be wise
|
||||
@ -96,14 +99,14 @@ LETSENCRYPT:
|
||||
- "www.staging.ocelot.social"
|
||||
|
||||
NGINX:
|
||||
# Most likely you don't need to change this
|
||||
# most likely you don't need to change this
|
||||
PROXY_BODY_SIZE: "10m"
|
||||
|
||||
STORAGE:
|
||||
# Change all the below if needed
|
||||
# change all the below if needed
|
||||
PROVISIONER: "dobs.csi.digitalocean.com"
|
||||
|
||||
# Most likely you don't need to change this
|
||||
# most likely you don't need to change this
|
||||
RECLAIM_POLICY: "Retain"
|
||||
VOLUME_BINDING_MODE: "Immediate"
|
||||
ALLOW_VOLUME_EXPANSION: true
|
||||
80
docker-compose.wirsocial.yml
Normal file
@ -0,0 +1,80 @@
|
||||
# This docker-compose file is just here for testing
|
||||
version: "3.4"
|
||||
|
||||
services:
|
||||
########################################################
|
||||
# WEBAPP ###############################################
|
||||
########################################################
|
||||
webapp:
|
||||
image: wirsocial/webapp-branded:latest
|
||||
ports:
|
||||
- 3000:3000
|
||||
networks:
|
||||
- test-network
|
||||
depends_on:
|
||||
- backend
|
||||
environment:
|
||||
- HOST=0.0.0.0
|
||||
- GRAPHQL_URI=http://backend:4000
|
||||
- MAPBOX_TOKEN="pk.eyJ1IjoiYnVzZmFrdG9yIiwiYSI6ImNraDNiM3JxcDBhaWQydG1uczhpZWtpOW4ifQ.7TNRTO-o9aK1Y6MyW_Nd4g"
|
||||
- WEBSOCKETS_URI=${WEBSOCKETS_URI}
|
||||
- PUBLIC_REGISTRATION=true
|
||||
########################################################
|
||||
# BACKEND ##############################################
|
||||
########################################################
|
||||
backend:
|
||||
image: wirsocial/backend-branded:latest
|
||||
networks:
|
||||
- test-network
|
||||
depends_on:
|
||||
- neo4j
|
||||
ports:
|
||||
- 4000:4000
|
||||
environment:
|
||||
- NEO4J_URI=bolt://neo4j:7687
|
||||
- GRAPHQL_URI=http://backend:4000
|
||||
- CLIENT_URI=http://localhost:3000
|
||||
- JWT_SECRET=b/&&7b78BF&fv/Vd
|
||||
- MAPBOX_TOKEN=pk.eyJ1IjoiYnVzZmFrdG9yIiwiYSI6ImNraDNiM3JxcDBhaWQydG1uczhpZWtpOW4ifQ.7TNRTO-o9aK1Y6MyW_Nd4g
|
||||
- PRIVATE_KEY_PASSPHRASE=a7dsf78sadg87ad87sfagsadg78
|
||||
- EMAIL_SUPPORT=support@wir.social
|
||||
- EMAIL_DEFAULT_SENDER=info@wir.social
|
||||
- PUBLIC_REGISTRATION=true
|
||||
- SMTP_USERNAME=${SMTP_USERNAME}
|
||||
- SMTP_PASSWORD=${SMTP_PASSWORD}
|
||||
- SMTP_HOST=mailserver
|
||||
- SMTP_PORT=25
|
||||
- SMTP_IGNORE_TLS=true
|
||||
########################################################
|
||||
# NEO4J ################################################
|
||||
########################################################
|
||||
neo4j:
|
||||
image: wirsocial/neo4j-community-branded:latest
|
||||
networks:
|
||||
- test-network
|
||||
environment:
|
||||
- NEO4J_AUTH=none
|
||||
- NEO4J_dbms_security_procedures_unrestricted=algo.*,apoc.*
|
||||
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
|
||||
ports:
|
||||
- 7687:7687
|
||||
########################################################
|
||||
# MAINTENANCE ##########################################
|
||||
########################################################
|
||||
maintenance:
|
||||
image: wirsocial/maintenance-branded:latest
|
||||
networks:
|
||||
- test-network
|
||||
ports:
|
||||
- 5000:80
|
||||
########################################################
|
||||
# MAILSERVER TO FAKE SMTP ##############################
|
||||
########################################################
|
||||
mailserver:
|
||||
image: djfarrelly/maildev
|
||||
ports:
|
||||
- 1080:80
|
||||
networks:
|
||||
- test-network
|
||||
networks:
|
||||
test-network:
|
||||
@ -2,6 +2,9 @@
|
||||
version: "3.4"
|
||||
|
||||
services:
|
||||
########################################################
|
||||
# WEBAPP ###############################################
|
||||
########################################################
|
||||
webapp:
|
||||
build:
|
||||
dockerfile: docker/webapp.Dockerfile
|
||||
@ -19,6 +22,9 @@ services:
|
||||
- MAPBOX_TOKEN="pk.eyJ1IjoiYnVzZmFrdG9yIiwiYSI6ImNraDNiM3JxcDBhaWQydG1uczhpZWtpOW4ifQ.7TNRTO-o9aK1Y6MyW_Nd4g"
|
||||
- WEBSOCKETS_URI=${WEBSOCKETS_URI}
|
||||
- PUBLIC_REGISTRATION=true
|
||||
########################################################
|
||||
# BACKEND ##############################################
|
||||
########################################################
|
||||
backend:
|
||||
build:
|
||||
dockerfile: docker/backend.Dockerfile
|
||||
@ -45,6 +51,9 @@ services:
|
||||
- SMTP_HOST=mailserver
|
||||
- SMTP_PORT=25
|
||||
- SMTP_IGNORE_TLS=true
|
||||
########################################################
|
||||
# NEO4J ################################################
|
||||
########################################################
|
||||
neo4j:
|
||||
image: ocelotsocialnetwork/neo4j:community
|
||||
networks:
|
||||
@ -55,6 +64,22 @@ services:
|
||||
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
|
||||
ports:
|
||||
- 7687:7687
|
||||
########################################################
|
||||
# MAINTENANCE ##########################################
|
||||
########################################################
|
||||
maintenance:
|
||||
build:
|
||||
# TODO: Separate from webapp, this must be independent
|
||||
dockerfile: docker/maintenance.Dockerfile
|
||||
target: branded
|
||||
context: .
|
||||
networks:
|
||||
- test-network
|
||||
ports:
|
||||
- 5000:80
|
||||
########################################################
|
||||
# MAILSERVER TO FAKE SMTP ##############################
|
||||
########################################################
|
||||
mailserver:
|
||||
image: djfarrelly/maildev
|
||||
ports:
|
||||
@ -62,4 +87,4 @@ services:
|
||||
networks:
|
||||
- test-network
|
||||
networks:
|
||||
test-network:
|
||||
test-network:
|
||||
|
||||
@ -1,8 +1,44 @@
|
||||
##################################################################################
|
||||
# BRANDED ########################################################################
|
||||
##################################################################################
|
||||
FROM ocelotsocialnetwork/backend:latest as branded
|
||||
ARG APP_IMAGE=ocelotsocialnetwork/backend
|
||||
ARG APP_IMAGE_TAG_BASE=latest-base
|
||||
ARG APP_IMAGE_TAG_CODE=latest-code
|
||||
ARG APP_IMAGE_BASE=${APP_IMAGE}:${APP_IMAGE_TAG_BASE}
|
||||
ARG APP_IMAGE_CODE=${APP_IMAGE}:${APP_IMAGE_TAG_CODE}
|
||||
|
||||
# Copy public constants to the docker image branding it
|
||||
##################################################################################
|
||||
# CODE (branded) #################################################################
|
||||
##################################################################################
|
||||
FROM $APP_IMAGE_CODE as code
|
||||
|
||||
# copy public constants into the Docker image to brand it
|
||||
COPY branding/constants/links.js src/config/
|
||||
COPY branding/constants/logos.js src/config/
|
||||
COPY branding/constants/metadata.js src/config/
|
||||
|
||||
##################################################################################
|
||||
# BUILD ##########################################################################
|
||||
##################################################################################
|
||||
FROM code as build
|
||||
|
||||
# yarn install
|
||||
RUN yarn install --production=false --frozen-lockfile --non-interactive
|
||||
# yarn build
|
||||
RUN yarn run build
|
||||
|
||||
##################################################################################
|
||||
# BRANDED (Does contain only "binary"- and static-files to reduce image size) ####
|
||||
##################################################################################
|
||||
FROM $APP_IMAGE_BASE as branded
|
||||
|
||||
# TODO - do all copying with one COPY command to have one layer
|
||||
# Copy "binary"-files from build image
|
||||
COPY --from=build ${DOCKER_WORKDIR}/dist ./dist
|
||||
COPY --from=build ${DOCKER_WORKDIR}/node_modules ./node_modules
|
||||
# Copy static files # Wolle comment overfluid here?
|
||||
# TODO - externalize the uploads so we can copy the whole folder
|
||||
COPY --from=build ${DOCKER_WORKDIR}/public/img/ ./public/img/
|
||||
COPY --from=build ${DOCKER_WORKDIR}/public/providers.json ./public/providers.json
|
||||
# Copy package.json for script definitions (lock file should not be needed)
|
||||
COPY --from=build ${DOCKER_WORKDIR}/package.json ./package.json
|
||||
|
||||
# Run command
|
||||
CMD /bin/sh -c "yarn run start"
|
||||
|
||||
@ -1,8 +1,37 @@
|
||||
##################################################################################
|
||||
# BRANDED ########################################################################
|
||||
##################################################################################
|
||||
FROM ocelotsocialnetwork/maintenance:latest as branded
|
||||
ARG APP_IMAGE=ocelotsocialnetwork/maintenance
|
||||
ARG APP_IMAGE_TAG_BASE=latest-base
|
||||
ARG APP_IMAGE_TAG_CODE=latest-code
|
||||
ARG APP_IMAGE_BASE=${APP_IMAGE}:${APP_IMAGE_TAG_BASE}
|
||||
ARG APP_IMAGE_CODE=${APP_IMAGE}:${APP_IMAGE_TAG_CODE}
|
||||
|
||||
# Copy public constants to the docker image branding it
|
||||
##################################################################################
|
||||
# CODE (branded) #################################################################
|
||||
##################################################################################
|
||||
FROM $APP_IMAGE_CODE as code
|
||||
|
||||
# copy public constants into the Docker image to brand it
|
||||
COPY branding/static/ static/
|
||||
COPY branding/constants/ constants/
|
||||
COPY branding/locales/ locales/
|
||||
|
||||
##################################################################################
|
||||
# BUILD ##########################################################################
|
||||
##################################################################################
|
||||
FROM code as build
|
||||
|
||||
# yarn install
|
||||
## unnicely done in $APP_IMAGE_CODE at the moment, see main repo
|
||||
# RUN yarn install --production=false --frozen-lockfile --non-interactive
|
||||
# yarn generate
|
||||
RUN yarn run generate
|
||||
|
||||
##################################################################################
|
||||
# BRANDED ### TODO # TODO # TODO # TODO # TODO # TODO # TODO # TODO # TODO ####
|
||||
##################################################################################
|
||||
# FROM $APP_IMAGE_BASE as branded
|
||||
FROM nginx:alpine as branded
|
||||
|
||||
COPY --from=build ./app/dist/ /usr/share/nginx/html/
|
||||
RUN rm /etc/nginx/conf.d/default.conf
|
||||
COPY --from=code ./app/maintenance/nginx/custom.conf /etc/nginx/conf.d/
|
||||
|
||||
|
||||
13
docker/neo4j.Dockerfile
Normal file
@ -0,0 +1,13 @@
|
||||
ARG APP_IMAGE=ocelotsocialnetwork/neo4j
|
||||
ARG APP_IMAGE_TAG=latest
|
||||
ARG APP_IMAGE_COMMUNITY=${APP_IMAGE}:${APP_IMAGE_TAG}
|
||||
|
||||
##################################################################################
|
||||
# COMMUNITY ######################################################################
|
||||
##################################################################################
|
||||
FROM $APP_IMAGE_COMMUNITY as community-branded
|
||||
|
||||
##################################################################################
|
||||
# ENTERPRISE #####################################################################
|
||||
##################################################################################
|
||||
FROM ocelotsocialnetwork/neo4j-enterprise:latest as enterprise-branded
|
||||
@ -1,8 +1,48 @@
|
||||
##################################################################################
|
||||
# BRANDED ########################################################################
|
||||
##################################################################################
|
||||
FROM ocelotsocialnetwork/webapp:latest as branded
|
||||
ARG APP_IMAGE=ocelotsocialnetwork/webapp
|
||||
ARG APP_IMAGE_TAG_BASE=latest-base
|
||||
ARG APP_IMAGE_TAG_CODE=latest-code
|
||||
ARG APP_IMAGE_BASE=${APP_IMAGE}:${APP_IMAGE_TAG_BASE}
|
||||
ARG APP_IMAGE_CODE=${APP_IMAGE}:${APP_IMAGE_TAG_CODE}
|
||||
|
||||
# Copy public constants to the docker image branding it
|
||||
##################################################################################
|
||||
# CODE (branded) #################################################################
|
||||
##################################################################################
|
||||
FROM $APP_IMAGE_CODE as code
|
||||
|
||||
# copy public constants into the Docker image to brand it
|
||||
COPY branding/static/ static/
|
||||
COPY branding/constants/ constants/
|
||||
COPY branding/locales/ locales/
|
||||
|
||||
##################################################################################
|
||||
# BUILD ##########################################################################
|
||||
##################################################################################
|
||||
FROM code as build
|
||||
|
||||
# yarn install
|
||||
RUN yarn install --production=false --frozen-lockfile --non-interactive
|
||||
# yarn build
|
||||
RUN yarn run build
|
||||
|
||||
##################################################################################
|
||||
# BRANDED (Does contain only "binary"- and static-files to reduce image size) ####
|
||||
##################################################################################
|
||||
FROM $APP_IMAGE_BASE as branded
|
||||
|
||||
# TODO - do all copying with one COPY command to have one layer
|
||||
# Copy "binary"-files from build image
|
||||
COPY --from=build ${DOCKER_WORKDIR}/.nuxt ./.nuxt
|
||||
COPY --from=build ${DOCKER_WORKDIR}/node_modules ./node_modules
|
||||
COPY --from=build ${DOCKER_WORKDIR}/nuxt.config.js ./nuxt.config.js
|
||||
# Copy static files
|
||||
# TODO - this seems not be needed anymore for the new rebranding
|
||||
# TODO - this should be one Folder containign all stuff needed to be copied
|
||||
COPY --from=build ${DOCKER_WORKDIR}/config/ ./config/
|
||||
COPY --from=build ${DOCKER_WORKDIR}/constants ./constants
|
||||
COPY --from=build ${DOCKER_WORKDIR}/static ./static
|
||||
COPY --from=build ${DOCKER_WORKDIR}/locales ./locales
|
||||
# Copy package.json for script definitions (lock file should not be needed)
|
||||
COPY --from=build ${DOCKER_WORKDIR}/package.json ./package.json
|
||||
|
||||
# Run command
|
||||
CMD /bin/sh -c "yarn run start"
|
||||
|
||||
10
package.json
@ -1,12 +1,14 @@
|
||||
{
|
||||
"name": "ocelot-social-branded",
|
||||
"version": "0.0.6",
|
||||
"description": "Ocelot Social Branded",
|
||||
"name": "wir.social",
|
||||
"version": "1.0.4",
|
||||
"ocelotDockerVersionTag": "1.0.4-100",
|
||||
"dockerOrganisation": "wirsocial",
|
||||
"description": "wir.social Network driven by ocelot.social",
|
||||
"author": "ocelot.social Community",
|
||||
"license": "MIT",
|
||||
"private": false,
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Ocelot-Social-Community/Ocelot-Social-Deploy-Rebranding.git"
|
||||
"url": "https://github.com/wir-social/wir-social.git"
|
||||
}
|
||||
}
|
||||
|
||||