diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..2df4ef1
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/modules.xml
+/.idea.docker-container.iml
+/projectSettingsUpdater.xml
+/contentModel.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/indexLayout.xml b/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..8306744
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/actualBudget/docker-compose.yml b/actualBudget/docker-compose.yml
new file mode 100644
index 0000000..832969d
--- /dev/null
+++ b/actualBudget/docker-compose.yml
@@ -0,0 +1,29 @@
+services:
+ actual_server:
+ image: docker.io/actualbudget/actual-server:latest
+ ports:
+ # This line makes Actual available at port 5006 of the device you run the server on,
+ # i.e. http://localhost:5006. You can change the first number to change the port, if you want.
+ - '5006:5006'
+ environment:
+ # Uncomment any of the lines below to set configuration options.
+ # - ACTUAL_HTTPS_KEY=/data/selfhost.key
+ # - ACTUAL_HTTPS_CERT=/data/selfhost.crt
+ # - ACTUAL_PORT=5006
+ # - ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB=20
+ # - ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB=50
+ # - ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB=20
+ # See all options and more details at https://actualbudget.github.io/docs/Installing/Configuration
+ # !! If you are not using any of these options, remove the 'environment:' tag entirely.
+ volumes:
+ # Change './actual-data' below to the path to the folder you want Actual to store its data in on your server.
+ # '/data' is the path Actual will look for its files in by default, so leave that as-is.
+ - /home/soenke/docker-data/actualBudget/data:/data
+ healthcheck:
+ # Enable health check for the instance
+ test: ['CMD-SHELL', 'node src/scripts/health-check.js']
+ interval: 60s
+ timeout: 10s
+ retries: 3
+ start_period: 20s
+ restart: unless-stopped
\ No newline at end of file
diff --git a/budibase/.env b/budibase/.env
new file mode 100644
index 0000000..a75e8a2
--- /dev/null
+++ b/budibase/.env
@@ -0,0 +1,31 @@
+# Use the main port in the builder for your self hosting URL, e.g. localhost:10000
+MAIN_PORT=10000
+
+# This section contains all secrets pertaining to the system
+# These should be updated
+API_ENCRYPTION_KEY="r*6V&XX#Nc@KhkB7"
+JWT_SECRET="4hXZmFIvjmb$!jIp"
+MINIO_ACCESS_KEY="*PG2M5^6WByh!uT1"
+MINIO_SECRET_KEY="I238Lt@TqB#eTtG%"
+COUCH_DB_PASSWORD="OgDcjjIA^Q6i0*VN"
+COUCH_DB_USER=budibase
+REDIS_PASSWORD="wfU2ufV*4#pxSyr&"
+INTERNAL_API_KEY="pWCxHj8*A6bfEzTB"
+
+# This section contains variables that do not need to be altered under normal circumstances
+APP_PORT=4002
+WORKER_PORT=4003
+MINIO_PORT=4004
+COUCH_DB_PORT=4005
+COUCH_DB_SQS_PORT=4006
+REDIS_PORT=6379
+BUDIBASE_ENVIRONMENT=PRODUCTION
+SQL_MAX_ROWS=
+
+# An admin user can be automatically created initially if these are set
+BB_ADMIN_USER_EMAIL=soenke@domroese.eu
+BB_ADMIN_USER_PASSWORD="$$3ljjnr6#nGO3pP"
+
+# A path that is watched for plugin bundles. Any bundles found are imported automatically/
+PLUGINS_DIR=
+ROLLING_LOG_MAX_SIZE=
diff --git a/budibase/docker-compose.yml b/budibase/docker-compose.yml
new file mode 100644
index 0000000..f83ddd0
--- /dev/null
+++ b/budibase/docker-compose.yml
@@ -0,0 +1,120 @@
+version: "3"
+
+# optional ports are specified throughout for more advanced use cases.
+
+services:
+ app-service:
+ restart: unless-stopped
+ image: budibase/apps
+ container_name: bbapps
+ environment:
+ SELF_HOSTED: 1
+ COUCH_DB_URL: http://${COUCH_DB_USER}:${COUCH_DB_PASSWORD}@couchdb-service:5984
+ WORKER_URL: http://worker-service:4003
+ MINIO_URL: http://minio-service:9000
+ MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY}
+ MINIO_SECRET_KEY: ${MINIO_SECRET_KEY}
+ INTERNAL_API_KEY: ${INTERNAL_API_KEY}
+ BUDIBASE_ENVIRONMENT: ${BUDIBASE_ENVIRONMENT}
+ PORT: 4002
+ API_ENCRYPTION_KEY: ${API_ENCRYPTION_KEY}
+ JWT_SECRET: ${JWT_SECRET}
+ LOG_LEVEL: info
+ ENABLE_ANALYTICS: "true"
+ REDIS_URL: redis-service:6379
+ REDIS_PASSWORD: ${REDIS_PASSWORD}
+ BB_ADMIN_USER_EMAIL: ${BB_ADMIN_USER_EMAIL}
+ BB_ADMIN_USER_PASSWORD: ${BB_ADMIN_USER_PASSWORD}
+ PLUGINS_DIR: ${PLUGINS_DIR}
+ OFFLINE_MODE: ${OFFLINE_MODE:-}
+ depends_on:
+ - worker-service
+ - redis-service
+ volumes:
+ - /home/soenke/docker-data/budibase/plugins:/plugins
+
+ worker-service:
+ restart: unless-stopped
+ image: budibase/worker
+ container_name: bbworker
+ environment:
+ SELF_HOSTED: 1
+ PORT: 4003
+ CLUSTER_PORT: ${MAIN_PORT}
+ API_ENCRYPTION_KEY: ${API_ENCRYPTION_KEY}
+ JWT_SECRET: ${JWT_SECRET}
+ MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY}
+ MINIO_SECRET_KEY: ${MINIO_SECRET_KEY}
+ MINIO_URL: http://minio-service:9000
+ APPS_URL: http://app-service:4002
+ COUCH_DB_USERNAME: ${COUCH_DB_USER}
+ COUCH_DB_PASSWORD: ${COUCH_DB_PASSWORD}
+ COUCH_DB_URL: http://${COUCH_DB_USER}:${COUCH_DB_PASSWORD}@couchdb-service:5984
+ INTERNAL_API_KEY: ${INTERNAL_API_KEY}
+ REDIS_URL: redis-service:6379
+ REDIS_PASSWORD: ${REDIS_PASSWORD}
+ OFFLINE_MODE: ${OFFLINE_MODE:-}
+ depends_on:
+ - redis-service
+ - minio-service
+
+ minio-service:
+ restart: unless-stopped
+ image: minio/minio
+ volumes:
+ - minio_data:/data
+ environment:
+ MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY}
+ MINIO_SECRET_KEY: ${MINIO_SECRET_KEY}
+ MINIO_BROWSER: "off"
+ command: server /data --console-address ":9001"
+ healthcheck:
+ test: "timeout 5s bash -c ':> /dev/tcp/127.0.0.1/9000' || exit 1"
+ interval: 30s
+ timeout: 20s
+ retries: 3
+
+ proxy-service:
+ restart: unless-stopped
+ ports:
+ - "${MAIN_PORT}:10000"
+ container_name: bbproxy
+ image: budibase/proxy
+ environment:
+ - PROXY_RATE_LIMIT_WEBHOOKS_PER_SECOND=10
+ - PROXY_RATE_LIMIT_API_PER_SECOND=20
+ - APPS_UPSTREAM_URL=http://app-service:4002
+ - WORKER_UPSTREAM_URL=http://worker-service:4003
+ - MINIO_UPSTREAM_URL=http://minio-service:9000
+ - COUCHDB_UPSTREAM_URL=http://couchdb-service:5984
+ - RESOLVER=127.0.0.11
+ depends_on:
+ - minio-service
+ - worker-service
+ - app-service
+ - couchdb-service
+
+ couchdb-service:
+ restart: unless-stopped
+ image: budibase/couchdb:v3.3.3-sqs-v2.1.1
+ environment:
+ - COUCHDB_PASSWORD=${COUCH_DB_PASSWORD}
+ - COUCHDB_USER=${COUCH_DB_USER}
+ - TARGETBUILD=docker-compose
+ volumes:
+ - couchdb3_data:/opt/couchdb/data
+
+ redis-service:
+ restart: unless-stopped
+ image: redis
+ command: redis-server --requirepass "${REDIS_PASSWORD}"
+ volumes:
+ - redis_data:/data
+
+volumes:
+ couchdb3_data:
+ driver: local
+ minio_data:
+ driver: local
+ redis_data:
+ driver: local
diff --git a/caddy/Caddyfile b/caddy/Caddyfile
index de6285e..03e72ed 100644
--- a/caddy/Caddyfile
+++ b/caddy/Caddyfile
@@ -60,6 +60,55 @@ chat.home.domroese.eu:443 {
tls soenke@domroese.eu
reverse_proxy 192.168.1.65:1180
}
+budibase.home.domroese.eu:443 {
+ tls soenke@domroese.eu
+ reverse_proxy 192.168.1.65:4002
+}
+
+erugo.home.domroese.eu:443 {
+ tls soenke@domroese.eu
+ reverse_proxy 192.168.1.65:9997
+}
+
+excalidraw.home.domroese.eu:443 {
+ tls soenke@domroese.eu
+ reverse_proxy 192.168.1.65:8267
+}
+
+homarr.home.domroese.eu:443 {
+ tls soenke@domroese.eu
+ reverse_proxy 192.168.1.65:7575
+}
+
+homepage.home.domroese.eu:443 {
+ tls soenke@domroese.eu
+ reverse_proxy 192.168.1.65:3891
+}
+
+mealie.home.domroese.eu:443 {
+ tls soenke@domroese.eu
+ reverse_proxy 192.168.1.65:9925
+}
+
+omnitools.home.domroese.eu:443 {
+ tls soenke@domroese.eu
+ reverse_proxy 192.168.1.65:8579
+}
+
+shiori.home.domroese.eu:443 {
+ tls soenke@domroese.eu
+ reverse_proxy 192.168.1.65:2661
+}
+
+wallos.home.domroese.eu:443 {
+ tls soenke@domroese.eu
+ reverse_proxy 192.168.1.65:8282
+}
+
+
+
+
+
nas.home.domroese.eu {
tls soenke@domroese.eu {
diff --git a/erugo/docker-compose.yml b/erugo/docker-compose.yml
new file mode 100644
index 0000000..8ddb924
--- /dev/null
+++ b/erugo/docker-compose.yml
@@ -0,0 +1,22 @@
+services:
+ erugo:
+ image: wardy784/erugo:latest
+ user: 0:0
+ container_name: Erugo
+ healthcheck:
+ test: ["CMD-SHELL", "nc -z 127.0.0.1 80 || exit 1"]
+ interval: 10s
+ timeout: 5s
+ retries: 3
+ start_period: 90s
+ environment:
+ VITE_API_URL: https://erugo.yourname.synology.me
+ JWT_SECRET: dLB%7V$YJ5cPPmeuZCc%0O2E0HMV9Ock!J0dU@mzgYp4IaCR4XVuUn%0i!e@sMUq
+ APP_KEY: h$@H$BdK8ywbKmwkt^B8TH^mjDQ$w*AideHPhOLTHt$qH2eQvqSWJpxsARKVRxXM
+ APP_DEBUG: true
+ APP_TIMEZONE: Europe/Berlin
+ volumes:
+ - /home/soenke/docker-data/erugo/data:/var/www/html/storage:rw
+ ports:
+ - 9997:80
+ restart: on-failure:5
\ No newline at end of file
diff --git a/excalidraw/docker-compose.yml b/excalidraw/docker-compose.yml
new file mode 100644
index 0000000..128a3b2
--- /dev/null
+++ b/excalidraw/docker-compose.yml
@@ -0,0 +1,23 @@
+services:
+ excalidraw:
+ build:
+ context: .
+ args:
+ - NODE_ENV=development
+ container_name: excalidraw
+ ports:
+ - "8267:80"
+ restart: on-failure
+ stdin_open: true
+ healthcheck:
+ disable: true
+ environment:
+ - NODE_ENV=development
+ volumes:
+ - /home/soenke/docker-data/excalidraw/data:/opt/node_app/app:delegated
+ - /home/soenke/docker-data/excalidraw/package.json:/opt/node_app/package.json
+ - /home/soenke/docker-data/excalidraw/yarn.lock:/opt/node_app/yarn.lock
+ - notused:/opt/node_app/app/node_modules
+
+volumes:
+ notused:
\ No newline at end of file
diff --git a/homarr/docker-compose.yml b/homarr/docker-compose.yml
new file mode 100644
index 0000000..7403464
--- /dev/null
+++ b/homarr/docker-compose.yml
@@ -0,0 +1,12 @@
+services:
+ homarr:
+ container_name: homarr
+ image: ghcr.io/homarr-labs/homarr:latest
+ restart: unless-stopped
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration
+ - /home/soenke/docker-data/homarr/appdata:/appdata
+ environment:
+ - SECRET_ENCRYPTION_KEY=c99349e72b4267a0ba7a19fa2de53cfdbd73708974338d2abe36f1379fe8ba7c
+ ports:
+ - '7575:7575'
\ No newline at end of file
diff --git a/homepage/docker-compose.yml b/homepage/docker-compose.yml
new file mode 100644
index 0000000..01c103c
--- /dev/null
+++ b/homepage/docker-compose.yml
@@ -0,0 +1,11 @@
+services:
+ homepage:
+ image: ghcr.io/gethomepage/homepage:latest
+ container_name: homepage
+ ports:
+ - 3891:3000
+ volumes:
+ - /home/soenke/docker-data/homepage/config:/app/config # Make sure your local config directory exists
+ - /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations
+ environment:
+ HOMEPAGE_ALLOWED_HOSTS: gethomepage.dev,homepage.home.domroese.eu # required, may need port. See gethomepage.dev/installation/#homepage_allowed_hosts
\ No newline at end of file
diff --git a/mealie/docker-compose.yml b/mealie/docker-compose.yml
new file mode 100644
index 0000000..35c8151
--- /dev/null
+++ b/mealie/docker-compose.yml
@@ -0,0 +1,60 @@
+services:
+ db:
+ image: postgres:16
+ container_name: Mealie-DB
+ hostname: mealie-db
+ mem_limit: 1g
+ cpu_shares: 768
+ security_opt:
+ - no-new-privileges:true
+ healthcheck:
+ test: ["CMD", "pg_isready", "-q", "-d", "mealie", "-U", "mealieuser"]
+ timeout: 45s
+ interval: 10s
+ retries: 10
+ volumes:
+ - /home/soenke/docker-data/mealie/db:/var/lib/postgresql/data:rw
+ environment:
+ POSTGRES_DB: mealie
+ POSTGRES_USER: mealie
+ POSTGRES_PASSWORD: $hYx%uyO$IAUX3EhXvUtP$GMe4TLgoiLrBTN9nrXh&q8C0TWqp&ku%dEOUPT4GMZ
+ restart: on-failure:5
+
+ mealie:
+ image: ghcr.io/mealie-recipes/mealie:latest
+ container_name: Mealie
+ hostname: mealie
+ mem_limit: 2g
+ cpu_shares: 1024
+ security_opt:
+ - no-new-privileges:true
+ read_only: false
+ ports:
+ - 9925:9000
+ volumes:
+ - /home/soenke/docker-data/mealie/data:/app/data/:rw
+ environment:
+ TZ: Europe/Berlin
+ PUID: 1026
+ PGID: 100
+ MAX_WORKERS: 1
+ WEB_CONCURRENCY: 1
+ ALLOW_SIGNUP: true
+ BASE_URL: https://mealie.home.domroese.eu
+ DB_ENGINE: postgres
+ POSTGRES_USER: mealie
+ POSTGRES_PASSWORD: $hYx%uyO$IAUX3EhXvUtP$GMe4TLgoiLrBTN9nrXh&q8C0TWqp&ku%dEOUPT4GMZ
+ POSTGRES_SERVER: mealie-db
+ POSTGRES_PORT: 5432
+ POSTGRES_DB: mealie
+ SMTP_HOST: smtp.gmail.com
+ SMTP_PORT: 587
+ SMTP_FROM_NAME: Mealie
+ SMTP_AUTH_STRATEGY: TLS # Options: TLS, SSL, NONE
+ SMTP_FROM_EMAIL: Your-own-gmail-address
+ SMTP_USER: Your-own-gmail-address
+ SMTP_PASSWORD: Your-own-app-password
+ restart: on-failure:5
+ depends_on:
+ db:
+ condition: service_healthy
\ No newline at end of file
diff --git a/omniTools/docker-compose.yml b/omniTools/docker-compose.yml
new file mode 100644
index 0000000..de302c4
--- /dev/null
+++ b/omniTools/docker-compose.yml
@@ -0,0 +1,7 @@
+services:
+ omni-tools:
+ image: iib0011/omni-tools:latest
+ container_name: omni-tools
+ restart: unless-stopped
+ ports:
+ - "8579:80"
\ No newline at end of file
diff --git a/penpot/docker-compose.yaml b/penpot/docker-compose.yaml
new file mode 100644
index 0000000..206342f
--- /dev/null
+++ b/penpot/docker-compose.yaml
@@ -0,0 +1,281 @@
+## Common flags:
+# demo-users
+# email-verification
+# log-emails
+# log-invitation-tokens
+# login-with-github
+# login-with-gitlab
+# login-with-google
+# login-with-ldap
+# login-with-oidc
+# login-with-password
+# prepl-server
+# registration
+# secure-session-cookies
+# smtp
+# smtp-debug
+# telemetry
+# webhooks
+##
+## You can read more about all available flags and other
+## environment variables here:
+## https://help.penpot.app/technical-guide/configuration/#advanced-configuration
+#
+# WARNING: if you're exposing Penpot to the internet, you should remove the flags
+# 'disable-secure-session-cookies' and 'disable-email-verification'
+x-flags: &penpot-flags
+ PENPOT_FLAGS: disable-email-verification enable-smtp enable-prepl-server disable-secure-session-cookies
+
+x-uri: &penpot-public-uri
+ PENPOT_PUBLIC_URI: http://penpot.home.domroese.eu
+
+x-body-size: &penpot-http-body-size
+ # Max body size (30MiB); Used for plain requests, should never be
+ # greater than multi-part size
+ PENPOT_HTTP_SERVER_MAX_BODY_SIZE: 31457280
+
+ # Max multipart body size (350MiB)
+ PENPOT_HTTP_SERVER_MAX_MULTIPART_BODY_SIZE: 367001600
+
+
+networks:
+ penpot:
+
+volumes:
+ penpot_postgres_v15:
+ penpot_assets:
+ # penpot_traefik:
+ # penpot_minio:
+
+services:
+ ## Traefik service declaration example. Consider using it if you are going to expose
+ ## penpot to the internet, or a different host than `localhost`.
+
+ # traefik:
+ # image: traefik:v3.3
+ # networks:
+ # - penpot
+ # command:
+ # - "--api.insecure=true"
+ # - "--entryPoints.web.address=:80"
+ # - "--providers.docker=true"
+ # - "--providers.docker.exposedbydefault=false"
+ # - "--entryPoints.websecure.address=:443"
+ # - "--certificatesresolvers.letsencrypt.acme.tlschallenge=true"
+ # - "--certificatesresolvers.letsencrypt.acme.email="
+ # - "--certificatesresolvers.letsencrypt.acme.storage=/traefik/acme.json"
+ # volumes:
+ # - "penpot_traefik:/traefik"
+ # - "/var/run/docker.sock:/var/run/docker.sock"
+ # ports:
+ # - "80:80"
+ # - "443:443"
+
+ penpot-frontend:
+ image: "penpotapp/frontend:${PENPOT_VERSION:-latest}"
+ restart: always
+ ports:
+ - 9574:8080
+
+ volumes:
+ - penpot_assets:/opt/data/assets
+
+ depends_on:
+ - penpot-backend
+ - penpot-exporter
+
+ networks:
+ - penpot
+
+ # labels:
+ # - "traefik.enable=true"
+
+ # ## HTTPS: example of labels for the case where penpot will be exposed to the
+ # ## internet with HTTPS using traefik.
+
+ # - "traefik.http.routers.penpot-https.rule=Host(``)"
+ # - "traefik.http.routers.penpot-https.entrypoints=websecure"
+ # - "traefik.http.routers.penpot-https.tls.certresolver=letsencrypt"
+ # - "traefik.http.routers.penpot-https.tls=true"
+
+ environment:
+ << : [*penpot-flags, *penpot-http-body-size]
+
+ penpot-backend:
+ image: "penpotapp/backend:${PENPOT_VERSION:-latest}"
+ restart: always
+
+ volumes:
+ - penpot_assets:/opt/data/assets
+
+ depends_on:
+ penpot-postgres:
+ condition: service_healthy
+ penpot-redis:
+ condition: service_healthy
+
+ networks:
+ - penpot
+
+ ## Configuration envronment variables for the backend container.
+
+ environment:
+ << : [*penpot-flags, *penpot-public-uri, *penpot-http-body-size]
+
+ ## Penpot SECRET KEY. It serves as a master key from which other keys for subsystems
+ ## (eg http sessions, or invitations) are derived.
+ ##
+ ## If you leave it commented, all created sessions and invitations will
+ ## become invalid on container restart.
+ ##
+ ## If you going to uncomment this, we recommend to use a trully randomly generated
+ ## 512 bits base64 encoded string here. You can generate one with:
+ ##
+ ## python3 -c "import secrets; print(secrets.token_urlsafe(64))"
+
+ # PENPOT_SECRET_KEY: my-insecure-key
+
+ ## The PREPL host. Mainly used for external programatic access to penpot backend
+ ## (example: admin). By default it will listen on `localhost` but if you are going to use
+ ## the `admin`, you will need to uncomment this and set the host to `0.0.0.0`.
+
+ # PENPOT_PREPL_HOST: 0.0.0.0
+
+ ## Database connection parameters. Don't touch them unless you are using custom
+ ## postgresql connection parameters.
+
+ PENPOT_DATABASE_URI: postgresql://penpot-postgres/penpot
+ PENPOT_DATABASE_USERNAME: penpot
+ PENPOT_DATABASE_PASSWORD: penpot
+
+ ## Redis is used for the websockets notifications. Don't touch unless the redis
+ ## container has different parameters or different name.
+
+ PENPOT_REDIS_URI: redis://penpot-redis/0
+
+ ## Default configuration for assets storage: using filesystem based with all files
+ ## stored in a docker volume.
+
+ PENPOT_ASSETS_STORAGE_BACKEND: assets-fs
+ PENPOT_STORAGE_ASSETS_FS_DIRECTORY: /opt/data/assets
+
+ ## Also can be configured to to use a S3 compatible storage
+ ## service like MiniIO. Look below for minio service setup.
+
+ # AWS_ACCESS_KEY_ID:
+ # AWS_SECRET_ACCESS_KEY:
+ # PENPOT_ASSETS_STORAGE_BACKEND: assets-s3
+ # PENPOT_STORAGE_ASSETS_S3_ENDPOINT: http://penpot-minio:9000
+ # PENPOT_STORAGE_ASSETS_S3_BUCKET:
+
+ ## Telemetry. When enabled, a periodical process will send anonymous data about this
+ ## instance. Telemetry data will enable us to learn how the application is used,
+ ## based on real scenarios. If you want to help us, please leave it enabled. You can
+ ## audit what data we send with the code available on github.
+
+ PENPOT_TELEMETRY_ENABLED: true
+ PENPOT_TELEMETRY_REFERER: compose
+
+ ## Example SMTP/Email configuration. By default, emails are sent to the mailcatch
+ ## service, but for production usage it is recommended to setup a real SMTP
+ ## provider. Emails are used to confirm user registrations & invitations. Look below
+ ## how the mailcatch service is configured.
+
+ PENPOT_SMTP_DEFAULT_FROM: no-reply@example.com
+ PENPOT_SMTP_DEFAULT_REPLY_TO: no-reply@example.com
+ PENPOT_SMTP_HOST: penpot-mailcatch
+ PENPOT_SMTP_PORT: 1025
+ PENPOT_SMTP_USERNAME:
+ PENPOT_SMTP_PASSWORD:
+ PENPOT_SMTP_TLS: false
+ PENPOT_SMTP_SSL: false
+
+ penpot-exporter:
+ image: "penpotapp/exporter:${PENPOT_VERSION:-latest}"
+ restart: always
+
+ depends_on:
+ penpot-redis:
+ condition: service_healthy
+
+ networks:
+ - penpot
+
+ environment:
+ # Don't touch it; this uses an internal docker network to
+ # communicate with the frontend.
+ PENPOT_PUBLIC_URI: http://penpot-frontend:8080
+
+ ## Redis is used for the websockets notifications.
+ PENPOT_REDIS_URI: redis://penpot-redis/0
+
+ penpot-postgres:
+ image: "postgres:15"
+ restart: always
+ stop_signal: SIGINT
+
+ healthcheck:
+ test: ["CMD-SHELL", "pg_isready -U penpot"]
+ interval: 2s
+ timeout: 10s
+ retries: 5
+ start_period: 2s
+
+ volumes:
+ - penpot_postgres_v15:/var/lib/postgresql/data
+
+ networks:
+ - penpot
+
+ environment:
+ - POSTGRES_INITDB_ARGS=--data-checksums
+ - POSTGRES_DB=penpot
+ - POSTGRES_USER=penpot
+ - POSTGRES_PASSWORD=penpot
+
+ penpot-redis:
+ image: redis:7.2
+ restart: always
+
+ healthcheck:
+ test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
+ interval: 1s
+ timeout: 3s
+ retries: 5
+ start_period: 3s
+
+ networks:
+ - penpot
+
+ ## A mailcatch service, used as temporal SMTP server. You can access via HTTP to the
+ ## port 1080 for read all emails the penpot platform has sent. Should be only used as a
+ ## temporal solution while no real SMTP provider is configured.
+
+ penpot-mailcatch:
+ image: sj26/mailcatcher:latest
+ restart: always
+ expose:
+ - '1025'
+ ports:
+ - "1080:1080"
+ networks:
+ - penpot
+
+ ## Example configuration of MiniIO (S3 compatible object storage service); If you don't
+ ## have preference, then just use filesystem, this is here just for the completeness.
+
+ # minio:
+ # image: "minio/minio:latest"
+ # command: minio server /mnt/data --console-address ":9001"
+ # restart: always
+ #
+ # volumes:
+ # - "penpot_minio:/mnt/data"
+ #
+ # environment:
+ # - MINIO_ROOT_USER=minioadmin
+ # - MINIO_ROOT_PASSWORD=minioadmin
+ #
+ # ports:
+ # - 9000:9000
+ # - 9001:9001
diff --git a/shiori/docker-compose.yml b/shiori/docker-compose.yml
new file mode 100644
index 0000000..c56d87c
--- /dev/null
+++ b/shiori/docker-compose.yml
@@ -0,0 +1,8 @@
+services:
+ go-shiori:
+ image: ghcr.io/go-shiori/shiori
+ volumes:
+ - '/home/soenke/docker-data/shiori:/shiori'
+ ports:
+ - '2661:8080'
+ container_name: shiori
\ No newline at end of file
diff --git a/startall.sh b/startall.sh
new file mode 100644
index 0000000..87fad6a
--- /dev/null
+++ b/startall.sh
@@ -0,0 +1,5 @@
+for dir in *; do
+ if [ -d "$dir" ]; then # or: if test -d "$dir"; then
+ ( cd "$dir" && docker-compose up -d )
+ fi
+done
diff --git a/wallos/docker-compose.yml b/wallos/docker-compose.yml
new file mode 100644
index 0000000..e2cde53
--- /dev/null
+++ b/wallos/docker-compose.yml
@@ -0,0 +1,13 @@
+services:
+ wallos:
+ container_name: wallos
+ image: bellamy/wallos:latest
+ ports:
+ - "8282:80/tcp"
+ environment:
+ TZ: 'Europe/Berlin'
+ # Volumes store your data between container upgrades
+ volumes:
+ - '/home/soenke/docker-data/wallos/db:/var/www/html/db'
+ - '/home/soenke/docker-data/wallos/logos:/var/www/html/images/uploads/logos'
+ restart: unless-stopped
\ No newline at end of file