commit fa752f5394dd9fde064f96966589815d344cacc1 Author: lu@vps Date: Thu Apr 28 23:56:06 2022 +0200 backing this up in git diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1e54276 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +__zolder/strapi/app/ +caddy/caddy/ +caddy/webroot/ +directus/app/ +gitea/volumes/ +grav-docker/LICENSE +grav-docker/README.md +grav-docker/data/ +grav-docker/docker/ +grav-docker/specs/ +hedgedoc/volumes/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..99cd0dc --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +## DESEARCH.CC + +Digital infrastructure for collaboration on projects + + +`__zolder` contains try-outs that were discarded or rachived for some reason + + + diff --git a/__zolder/strapi/docker-compose.yml b/__zolder/strapi/docker-compose.yml new file mode 100644 index 0000000..1a4d360 --- /dev/null +++ b/__zolder/strapi/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3' +services: + strapi: + image: strapi/strapi + volumes: + - ./app:/srv/app + ports: + - '1337:1337' + diff --git a/caddy/Caddyfile b/caddy/Caddyfile new file mode 100644 index 0000000..cf087b3 --- /dev/null +++ b/caddy/Caddyfile @@ -0,0 +1,30 @@ +desearch.cc { + root * /var/www + encode gzip + file_server +} + +worklog.desearch.cc { + reverse_proxy localhost:8055 +} + +pad.desearch.cc { + reverse_proxy localhost:3000 +} + +git.desearch.cc { + reverse_proxy localhost:7000 +} + +#cms.desearch.cc { +# reverse_proxy localhost:1337 +#} + +cms.desearch.cc { + reverse_proxy localhost:8088 +} + +wiki.desearch.cc { + reverse_proxy localhost:8090 +} + diff --git a/caddy/docker-compose.yml b/caddy/docker-compose.yml new file mode 100644 index 0000000..3805e89 --- /dev/null +++ b/caddy/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3" +services: + proxy: + image: caddy + restart: always + ports: + - 80:80 + - 443:443 + network_mode: host + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile + - ./caddy:/data/ + - /root/webroot/desearch.cc:/var/www + - /root/webroot/wiki.desearch.cc:/var/wiki + + diff --git a/directus/docker-compose.yml b/directus/docker-compose.yml new file mode 100644 index 0000000..1ea774a --- /dev/null +++ b/directus/docker-compose.yml @@ -0,0 +1,47 @@ +version: '3' +services: + + cache: + container_name: cache + image: redis:6 + networks: + - directus + + directus: + container_name: directus + image: directus/directus:latest + ports: + - 8088:8055 + volumes: + # By default, uploads are stored in /directus/uploads + # Always make sure your volumes matches the storage root when using + # local driver + - ./app/uploads:/directus/uploads + # Make sure to also mount the volume when using SQLite + - ./app/database:/directus/database + # If you want to load extensions from the host + - ./app/extensions:/directus/extensions + networks: + - directus + depends_on: + - cache + environment: + KEY: 'f8b6f7c6-f3b4-41ef-883f-f97bd2506136' + SECRET: '12011038-b561-4f86-982e-575612c37cc7' + + DB_CLIENT: 'sqlite3' + DB_FILENAME: 'desearch_directus.db' + + CACHE_ENABLED: 'true' + CACHE_STORE: 'redis' + CACHE_REDIS: 'redis://cache:6379' + + ADMIN_EMAIL: 'root@derfunke.net' + ADMIN_PASSWORD: 'PR45C7Zf49UyG5MP458Xdnd' + + # Make sure to set this in production + # (see https://docs.directus.io/configuration/config-options/#general) + PUBLIC_URL: 'https://cms.desearch.cc' + +networks: + directus: diff --git a/gitea/docker-compose.yml b/gitea/docker-compose.yml new file mode 100644 index 0000000..91a8aa7 --- /dev/null +++ b/gitea/docker-compose.yml @@ -0,0 +1,44 @@ +version: "3" + +networks: + gitea: + external: false + +services: + server: + image: gitea/gitea:1.14.6 + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + - ROOT_URL=https://git.desearch.cc + - GITEA__database__DB_TYPE=postgres + - GITEA__database__HOST=db:5432 + - GITEA__database__NAME=gitea + - GITEA__database__USER=gitea + - GITEA__database__PASSWD=gitea + restart: always + networks: + - gitea + volumes: + - ./volumes/gitea:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "7000:3000" + - "22:22" + depends_on: + - db + + db: + image: postgres:13.4-alpine + restart: always + environment: + - POSTGRES_USER=gitea + - POSTGRES_PASSWORD=gitea + - POSTGRES_DB=gitea + networks: + - gitea + volumes: + - ./volumes/database:/var/lib/postgresql/data + diff --git a/grav-docker/docker-compose.yaml b/grav-docker/docker-compose.yaml new file mode 100644 index 0000000..a57133f --- /dev/null +++ b/grav-docker/docker-compose.yaml @@ -0,0 +1,9 @@ +version: '2' +services: + grav: + restart: unless-stopped + image: opsforge/grav-docker:latest + ports: + - 8055:80 + volumes: + - ./data:/var/www/html diff --git a/hedgedoc/docker-compose.yml b/hedgedoc/docker-compose.yml new file mode 100644 index 0000000..c2a4960 --- /dev/null +++ b/hedgedoc/docker-compose.yml @@ -0,0 +1,95 @@ +# Using version 3 to provide play-with-docker badge +# You can change to version 2 without breaking. +#version: '2' +version: '3' +services: + database: + # Don't upgrade PostgreSQL by simply changing the version number + # You need to migrate the Database to the new PostgreSQL version + image: postgres:9.6-alpine + #mem_limit: 256mb # version 2 only + #memswap_limit: 512mb # version 2 only + #read_only: true # not supported in swarm mode please enable along with tmpfs + #tmpfs: + # - /run/postgresql:size=512K + # - /tmp:size=256K + environment: + - POSTGRES_USER=hedgedoc + - POSTGRES_PASSWORD=e404+hB2x6Gu3wBycp55Sf8knEc+flOZxrKEBKZViog + - POSTGRES_DB=hedgedoc + volumes: + - ./volumes/database:/var/lib/postgresql/data + networks: + backend: + restart: always + + # MySQL example + # Most of the documentation that applies to PostgreSQL applies also to MySQL + #database: + # # You should be able to upgrade MySQL without problems + # # but to make sure no even when a problem appears you + # # should have a backup + # image: mariadb:10 + # environment: + # - MYSQL_USER=hedgedoc + # - MYSQL_PASSWORD=password + # - MYSQL_DATABASE=hedgedoc + # - MYSQL_ALLOW_EMPTY_PASSWORD=true + # volumes: + # - database:/var/lib/mysql + # # This config provides UTF-8 support to the database by default + # # If this config is not used, HedgeDoc breaks as it tries to write + # # UTF-8 to a latin database. + # - ./resources/utf8.cnf:/etc/mysql/conf.d/utf8.cnf + # networks: + # backend: + # restart: always + + app: + # Uncomment the following section to build the image yourself: + #build: + # context: . + # dockerfile: debian/Dockerfile + # args: + # - "VERSION=master" + # - "HEDGEDOC_REPOSITORY=https://github.com/hedgedoc/hedgedoc.git" + #image: quay.io/hedgedoc/hedgedoc:1.8.2 + image: quay.io/hedgedoc/hedgedoc:1.9.0 + #mem_limit: 256mb # version 2 only + #memswap_limit: 512mb # version 2 only + #read_only: true # not supported in swarm mode, enable along with tmpfs + #tmpfs: + # - /tmp:size=10M + # # Make sure you remove this when you use filesystem as upload type + # - /hedgedoc/public/uploads:size=10M + environment: + # DB_URL is formatted like: ://:@:/ + # Other examples are: + # - mysql://hedgedoc:password@database:3306/hedgedoc + # - sqlite:///data/sqlite.db (NOT RECOMMENDED) + # - For details see the official sequelize docs: http://docs.sequelizejs.com/en/v3/ + - CMD_DB_URL=postgres://hedgedoc:e404+hB2x6Gu3wBycp55Sf8knEc+flOZxrKEBKZViog@database:5432/hedgedoc + - CMD_DOMAIN=pad.desearch.cc + - CMD_ALLOW_FREEURL=true + - CMD_PROTOCOL_USESSL=true + + volumes: + - ./volumes/uploads:/hedgedoc/public/uploads + ports: + # Ports that are published to the outside. + # The latter port is the port inside the container. It should always stay on 3000 + # If you only specify a port it'll published on all interfaces. If you want to use a + # local reverse proxy, you may want to listen on 127.0.0.1. + # Example: + # - "127.0.0.1:3000:3000" + - "3000:3000" + networks: + backend: + restart: always + depends_on: + - database + +# Define networks to allow best isolation +networks: + # Internal network for communication with PostgreSQL/MySQL + backend: diff --git a/wikijs/app/config.yml b/wikijs/app/config.yml new file mode 100644 index 0000000..9d2d644 --- /dev/null +++ b/wikijs/app/config.yml @@ -0,0 +1,123 @@ +####################################################################### +# Wiki.js - CONFIGURATION # +####################################################################### +# Full documentation + examples: +# https://docs.requarks.io/install + +# --------------------------------------------------------------------- +# Port the server should listen to +# --------------------------------------------------------------------- + +port: 3000 + +# --------------------------------------------------------------------- +# Database +# --------------------------------------------------------------------- +# Supported Database Engines: +# - postgres = PostgreSQL 9.5 or later +# - mysql = MySQL 8.0 or later (5.7.8 partially supported, refer to docs) +# - mariadb = MariaDB 10.2.7 or later +# - mssql = MS SQL Server 2012 or later +# - sqlite = SQLite 3.9 or later + +db: + type: sqlite + storage: wikijs_desearch.sqlite + +####################################################################### +# ADVANCED OPTIONS # +####################################################################### +# Do not change unless you know what you are doing! + +# --------------------------------------------------------------------- +# SSL/TLS Settings +# --------------------------------------------------------------------- +# Consider using a reverse proxy (e.g. nginx) if you require more +# advanced options than those provided below. + +ssl: + enabled: false + port: 3443 + + # Provider to use, possible values: custom, letsencrypt + provider: custom + + # ++++++ For custom only ++++++ + # Certificate format, either 'pem' or 'pfx': + format: pem + # Using PEM format: + key: path/to/key.pem + cert: path/to/cert.pem + # Using PFX format: + pfx: path/to/cert.pfx + # Passphrase when using encrypted PEM / PFX keys (default: null): + passphrase: null + # Diffie Hellman parameters, with key length being greater or equal + # to 1024 bits (default: null): + dhparam: null + + # ++++++ For letsencrypt only ++++++ + domain: wiki.yourdomain.com + subscriberEmail: admin@example.com + +# --------------------------------------------------------------------- +# Database Pool Options +# --------------------------------------------------------------------- +# Refer to https://github.com/vincit/tarn.js for all possible options + +pool: + # min: 2 + # max: 10 + +# --------------------------------------------------------------------- +# IP address the server should listen to +# --------------------------------------------------------------------- +# Leave 0.0.0.0 for all interfaces + +bindIP: 0.0.0.0 + +# --------------------------------------------------------------------- +# Log Level +# --------------------------------------------------------------------- +# Possible values: error, warn, info (default), verbose, debug, silly + +logLevel: info + +# --------------------------------------------------------------------- +# Log Format +# --------------------------------------------------------------------- +# Output format for logging, possible values: default, json + +logFormat: default + +# --------------------------------------------------------------------- +# Offline Mode +# --------------------------------------------------------------------- +# If your server cannot access the internet. Set to true and manually +# download the offline files for sideloading. + +offline: false + +# --------------------------------------------------------------------- +# High-Availability +# --------------------------------------------------------------------- +# Set to true if you have multiple concurrent instances running off the +# same DB (e.g. Kubernetes pods / load balanced instances). Leave false +# otherwise. You MUST be using PostgreSQL to use this feature. + +ha: false + +# --------------------------------------------------------------------- +# Data Path +# --------------------------------------------------------------------- +# Writeable data path used for cache and temporary user uploads. +dataPath: /wiki/data + +# --------------------------------------------------------------------- +# Body Parser Limit +# --------------------------------------------------------------------- +# Maximum size of API requests body that can be parsed. Does not affect +# file uploads. + +bodyParserLimit: 5mb + diff --git a/wikijs/docker-compose.yml b/wikijs/docker-compose.yml new file mode 100644 index 0000000..ff922a5 --- /dev/null +++ b/wikijs/docker-compose.yml @@ -0,0 +1,10 @@ +version: "3" +services: + + wiki: + image: ghcr.io/requarks/wiki:2 + restart: unless-stopped + ports: + - 8090:3000 + volumes: + - ./app/config.yml:/wiki/config.yml