Add stack structure and compose files
This commit is contained in:
parent
44a1256c80
commit
aff48645f7
9
.gitignore
vendored
9
.gitignore
vendored
@ -1,8 +1,9 @@
|
||||
# Secrets
|
||||
cat > .gitignore <<'EOF'
|
||||
# secrets
|
||||
.env
|
||||
*.env
|
||||
|
||||
# App data / volumes
|
||||
# volumes / app data
|
||||
**/db/
|
||||
**/db_data/
|
||||
**/postgres_data/
|
||||
@ -11,10 +12,10 @@
|
||||
**/html/
|
||||
**/wp_data/
|
||||
**/n8n_data/
|
||||
**/vaultwarden-data/
|
||||
**/logs/
|
||||
|
||||
# OS/Editor
|
||||
# editor / os
|
||||
.DS_Store
|
||||
.idea/
|
||||
.vscode/
|
||||
EOF
|
||||
|
||||
33
stacks/gitea/docker-compose.yml
Normal file
33
stacks/gitea/docker-compose.yml
Normal file
@ -0,0 +1,33 @@
|
||||
services:
|
||||
db:
|
||||
image: postgres:16
|
||||
container_name: gitea-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: gitea
|
||||
POSTGRES_USER: gitea
|
||||
POSTGRES_PASSWORD: zbr#1efs0ks%SdHy*7pZ
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
|
||||
gitea:
|
||||
image: gitea/gitea:1.22
|
||||
container_name: gitea
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db
|
||||
ports:
|
||||
- "127.0.0.1:3002:3000"
|
||||
environment:
|
||||
GITEA__database__DB_TYPE: postgres
|
||||
GITEA__database__HOST: db:5432
|
||||
GITEA__database__NAME: gitea
|
||||
GITEA__database__USER: gitea
|
||||
GITEA__database__PASSWD: zbr#1efs0ks%SdHy*7pZ
|
||||
|
||||
GITEA__server__DOMAIN: git.bartschatten.de
|
||||
GITEA__server__ROOT_URL: https://git.bartschatten.de/
|
||||
GITEA__server__HTTP_PORT: 3000
|
||||
GITEA__server__PROTOCOL: http
|
||||
volumes:
|
||||
- ./data:/data
|
||||
12
stacks/n8n/.env.example
Normal file
12
stacks/n8n/.env.example
Normal file
@ -0,0 +1,12 @@
|
||||
N8N_BASIC_AUTH_USER=mfredrich
|
||||
N8N_BASIC_AUTH_PASSWORD=CHANGEME
|
||||
N8N_HOST=automation.bartschatten.de
|
||||
N8N_PORT=5678
|
||||
N8N_PROTOCOL=https
|
||||
WEBHOOK_URL=https://automation.bartschatten.de/
|
||||
N8N_EDITOR_BASE_URL=https://automation.bartschatten.de/
|
||||
GENERIC_TIMEZONE=Europe/Berlin
|
||||
|
||||
DB_POSTGRESDB_DATABASE=n8n
|
||||
DB_POSTGRESDB_USER=n8n
|
||||
DB_POSTGRESDB_PASSWORD=CHANGEME
|
||||
36
stacks/n8n/docker-compose.yml
Normal file
36
stacks/n8n/docker-compose.yml
Normal file
@ -0,0 +1,36 @@
|
||||
services:
|
||||
db:
|
||||
image: postgres:16
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: ${DB_POSTGRESDB_DATABASE}
|
||||
POSTGRES_USER: ${DB_POSTGRESDB_USER}
|
||||
POSTGRES_PASSWORD: ${DB_POSTGRESDB_PASSWORD}
|
||||
volumes:
|
||||
- ./postgres_data:/var/lib/postgresql/data
|
||||
|
||||
n8n:
|
||||
image: n8nio/n8n:latest
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db
|
||||
ports:
|
||||
- "127.0.0.1:5678:5678"
|
||||
environment:
|
||||
- N8N_BASIC_AUTH_ACTIVE=true
|
||||
- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}
|
||||
- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}
|
||||
- N8N_HOST=${N8N_HOST}
|
||||
- N8N_PORT=${N8N_PORT}
|
||||
- N8N_PROTOCOL=${N8N_PROTOCOL}
|
||||
- WEBHOOK_URL=${WEBHOOK_URL}
|
||||
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
|
||||
- N8N_SECURE_COOKIE=false
|
||||
- DB_TYPE=postgresdb
|
||||
- DB_POSTGRESDB_HOST=db
|
||||
- DB_POSTGRESDB_PORT=5432
|
||||
- DB_POSTGRESDB_DATABASE=${DB_POSTGRESDB_DATABASE}
|
||||
- DB_POSTGRESDB_USER=${DB_POSTGRESDB_USER}
|
||||
- DB_POSTGRESDB_PASSWORD=${DB_POSTGRESDB_PASSWORD}
|
||||
volumes:
|
||||
- ./n8n_data:/home/node/.n8n
|
||||
4
stacks/nextcloud/.env.example
Normal file
4
stacks/nextcloud/.env.example
Normal file
@ -0,0 +1,4 @@
|
||||
MYSQL_DATABASE=nextcloud
|
||||
MYSQL_USER=nextclouduser
|
||||
MYSQL_PASSWORD=CHANGEME
|
||||
MYSQL_ROOT_PASSWORD=CHANGEME
|
||||
59
stacks/nextcloud/docker-compose.yml
Normal file
59
stacks/nextcloud/docker-compose.yml
Normal file
@ -0,0 +1,59 @@
|
||||
services:
|
||||
db:
|
||||
image: mariadb:11
|
||||
container_name: nextcloud-db
|
||||
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||
MYSQL_USER: ${MYSQL_USER}
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||
volumes:
|
||||
- ./db:/var/lib/mysql
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mariadb-admin ping -h 127.0.0.1 -u$$MYSQL_USER -p$$MYSQL_PASSWORD || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: nextcloud-redis
|
||||
restart: unless-stopped
|
||||
command: redis-server --save 60 1 --loglevel warning
|
||||
volumes:
|
||||
- ./redis:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 10
|
||||
|
||||
app:
|
||||
image: nextcloud:apache
|
||||
container_name: nextcloud-app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "127.0.0.1:8080:80"
|
||||
environment:
|
||||
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||
MYSQL_USER: ${MYSQL_USER}
|
||||
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
|
||||
MYSQL_HOST: db
|
||||
REDIS_HOST: redis
|
||||
# optional, aber oft hilfreich hinter Reverse Proxy:
|
||||
TRUSTED_PROXIES: 127.0.0.1
|
||||
# OVERWRITEPROTOCOL: https
|
||||
volumes:
|
||||
- ./html:/var/www/html
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1/status.php | grep -q 'installed'"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
10
stacks/portainer/docker-compose.yml
Normal file
10
stacks/portainer/docker-compose.yml
Normal file
@ -0,0 +1,10 @@
|
||||
services:
|
||||
portainer:
|
||||
image: portainer/portainer-ce:latest
|
||||
container_name: portainer
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "127.0.0.1:9000:9000"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- ./data:/data
|
||||
9
stacks/uptime-kuma/docker-compose.yml
Normal file
9
stacks/uptime-kuma/docker-compose.yml
Normal file
@ -0,0 +1,9 @@
|
||||
services:
|
||||
uptime-kuma:
|
||||
image: louislam/uptime-kuma:1
|
||||
container_name: uptime-kuma
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "127.0.0.1:3001:3001"
|
||||
volumes:
|
||||
- ./data:/app/data
|
||||
8
stacks/vaultwarden/.env.example
Normal file
8
stacks/vaultwarden/.env.example
Normal file
@ -0,0 +1,8 @@
|
||||
# Externer Domainname (so wie du ihn später im Browser aufrufst)
|
||||
BW_DOMAIN=https://bitwarden.bartschatten.de
|
||||
|
||||
# Admin-Panel aktivieren (starker Token!)
|
||||
BW_ADMIN_TOKEN='CHANGEME'
|
||||
|
||||
# Optional: Registrierung erlauben oder nicht
|
||||
BW_SIGNUPS_ALLOWED=false
|
||||
20
stacks/vaultwarden/docker-compose.yml
Normal file
20
stacks/vaultwarden/docker-compose.yml
Normal file
@ -0,0 +1,20 @@
|
||||
services:
|
||||
bitwarden:
|
||||
image: vaultwarden/server:latest
|
||||
container_name: bitwarden
|
||||
restart: always
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
# Domain / URL
|
||||
- DOMAIN=${BW_DOMAIN}
|
||||
# Websockets für bessere Sync-Performance
|
||||
- WEBSOCKET_ENABLED=true
|
||||
# Registrierung erlauben oder verbieten
|
||||
- SIGNUPS_ALLOWED=${BW_SIGNUPS_ALLOWED}
|
||||
# Admin-Panel
|
||||
- ADMIN_TOKEN=${BW_ADMIN_TOKEN}
|
||||
volumes:
|
||||
- ./data:/data
|
||||
ports:
|
||||
- "127.0.0.1:8888:80"
|
||||
8
stacks/wordpress/.env.example
Normal file
8
stacks/wordpress/.env.example
Normal file
@ -0,0 +1,8 @@
|
||||
WP_DB_NAME=wordpress
|
||||
WP_DB_USER=wpuser
|
||||
WP_DB_PASSWORD=CHANGEME
|
||||
WP_DB_ROOT_PASSWORD=CHANGEME
|
||||
|
||||
WP_PORT=8085
|
||||
|
||||
WP_URL=https://www.bartschatten.de
|
||||
40
stacks/wordpress/docker-compose.yml
Normal file
40
stacks/wordpress/docker-compose.yml
Normal file
@ -0,0 +1,40 @@
|
||||
services:
|
||||
db:
|
||||
image: mariadb:11
|
||||
container_name: wordpress-db
|
||||
restart: unless-stopped
|
||||
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
|
||||
environment:
|
||||
MYSQL_DATABASE: ${WP_DB_NAME}
|
||||
MYSQL_USER: ${WP_DB_USER}
|
||||
MYSQL_PASSWORD: ${WP_DB_PASSWORD}
|
||||
MYSQL_ROOT_PASSWORD: ${WP_DB_ROOT_PASSWORD}
|
||||
volumes:
|
||||
- ./db_data:/var/lib/mysql
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mariadb-admin ping -h 127.0.0.1 -u$$MYSQL_USER -p$$MYSQL_PASSWORD || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
wordpress:
|
||||
image: wordpress:php8.2-apache
|
||||
container_name: wordpress-app
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "127.0.0.1:${WP_PORT}:80"
|
||||
environment:
|
||||
WORDPRESS_DB_HOST: db:3306
|
||||
WORDPRESS_DB_NAME: ${WP_DB_NAME}
|
||||
WORDPRESS_DB_USER: ${WP_DB_USER}
|
||||
WORDPRESS_DB_PASSWORD: ${WP_DB_PASSWORD}
|
||||
volumes:
|
||||
- ./wp_data:/var/www/html
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1/wp-login.php >/dev/null || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
Loading…
Reference in New Issue
Block a user