Compare commits
22 Commits
nextcloud-
...
main
Author | SHA1 | Date | |
---|---|---|---|
de01e948e7 | |||
24fb73f1f8 | |||
a66e102285 | |||
4f16bd46d9 | |||
37b9645bb1 | |||
dda3adb723 | |||
79a57aac8f | |||
6258e7b785 | |||
8d22db029a | |||
ce29e02049 | |||
2ba39d8994 | |||
0215f55009 | |||
a14b7e37c9 | |||
7c4cc5600d | |||
2899a31a1f | |||
7d5b892a1c | |||
f381bb7a7b | |||
9098407321 | |||
64eb98fe0e | |||
2cab330840 | |||
f5ede9f030 | |||
b9eeffbe42 |
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "sites/rittenhop/content/themes/rh-theme-v1"]
|
||||||
|
path = sites/rittenhop/content/themes/rh-theme-v1
|
||||||
|
url = git@github.com:b7s9/rh-theme-v1.git
|
18
README.md
18
README.md
|
@ -1,9 +1,21 @@
|
||||||
# Docker Compose for my Media Server
|
# Docker Compose for my Media Server
|
||||||
|
|
||||||
|
A giant suite of web apps that I personally use on my local server. Some of them include:
|
||||||
|
|
||||||
* Arr - A collection of all the *arr apps like Radarr and Sonarr
|
* Arr - A collection of all the *arr apps like Radarr and Sonarr
|
||||||
* Dashboard - Replies on Homarr and Dashdot for a top-level dashboard
|
* Dashboard - Replies on Homarr and Dashdot for a top-level dashboard
|
||||||
* Mail - An email service (WIP)
|
* Git Repo
|
||||||
* Nginx-Proxy - Handles reverse proxy and SSL certs
|
* Nextcloud - Cloud storage and sharing
|
||||||
* Plex - The Plex media server with stats
|
* Plex - The Plex media server with stats
|
||||||
* Readers - Various media readers that can be accessed via the browser
|
* Readers - Various media readers that can be accessed via the browser
|
||||||
* Wordpress - for making a site
|
* Sites - Various static sites I have. All of them are using the Ghost CMS
|
||||||
|
|
||||||
|
All the apps use Nginx-Proxy which handles reverse proxy and SSL certs for every app.
|
||||||
|
|
||||||
|
|
||||||
|
## Adding a new app
|
||||||
|
|
||||||
|
Use this checklist if you're having issue getting the app to run:
|
||||||
|
|
||||||
|
* Allow ports on your machine (e.g. `ufw allow 80`)
|
||||||
|
* Set port forwarding on your router
|
||||||
|
|
|
@ -40,6 +40,12 @@ services:
|
||||||
ports:
|
ports:
|
||||||
- 8989:8989
|
- 8989:8989
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
flaresolverr:
|
||||||
|
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||||
|
container_name: flaresolverr
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- 8191:8191
|
||||||
prowlarr:
|
prowlarr:
|
||||||
image: lscr.io/linuxserver/prowlarr:latest
|
image: lscr.io/linuxserver/prowlarr:latest
|
||||||
container_name: prowlarr
|
container_name: prowlarr
|
||||||
|
@ -145,6 +151,7 @@ services:
|
||||||
- ${CONFIG_LOCATION}/readarr:/config
|
- ${CONFIG_LOCATION}/readarr:/config
|
||||||
- ${DATA_LOCATION}/Books:/books
|
- ${DATA_LOCATION}/Books:/books
|
||||||
- /media/seedbox:/downloads
|
- /media/seedbox:/downloads
|
||||||
|
- ${DATA_LOCATION}/Downloads:/downloads-local
|
||||||
expose:
|
expose:
|
||||||
- "8787"
|
- "8787"
|
||||||
ports:
|
ports:
|
||||||
|
@ -164,6 +171,47 @@ services:
|
||||||
- ${CONFIG_LOCATION}/readarr-audio:/config
|
- ${CONFIG_LOCATION}/readarr-audio:/config
|
||||||
- ${DATA_LOCATION}/Audiobooks:/audiobooks
|
- ${DATA_LOCATION}/Audiobooks:/audiobooks
|
||||||
- /media/seedbox:/downloads
|
- /media/seedbox:/downloads
|
||||||
|
- ${DATA_LOCATION}/Downloads:/downloads-local
|
||||||
|
restart: unless-stopped
|
||||||
|
calibre:
|
||||||
|
image: lscr.io/linuxserver/calibre:latest
|
||||||
|
container_name: calibre
|
||||||
|
security_opt:
|
||||||
|
- seccomp:unconfined #optional
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
# - PASSWORD= #optional
|
||||||
|
# - CLI_ARGS= #optional
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/calibre:/config
|
||||||
|
- ${DATA_LOCATION}/Books:/books
|
||||||
|
- ${DATA_LOCATION}/Audiobooks:/audiobooks
|
||||||
|
- /media/seedbox:/downloads
|
||||||
|
- ${DATA_LOCATION}/Downloads:/downloads-local
|
||||||
|
ports:
|
||||||
|
- 8180:8080
|
||||||
|
- 8281:8181
|
||||||
|
- 8182:8081
|
||||||
|
restart: unless-stopped
|
||||||
|
calibre-web:
|
||||||
|
image: lscr.io/linuxserver/calibre-web:latest
|
||||||
|
container_name: calibre-web
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
- DOCKER_MODS=linuxserver/mods:universal-calibre #optional
|
||||||
|
- OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
|
||||||
|
- VIRTUAL_HOST=books.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=books.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/calibre-web:/config
|
||||||
|
- ${DATA_LOCATION}/Books:/books
|
||||||
|
ports:
|
||||||
|
- 8083:8083
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
default:
|
default:
|
||||||
|
|
20
bluesky/docker-compose.yml
Normal file
20
bluesky/docker-compose.yml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
services:
|
||||||
|
pds:
|
||||||
|
container_name: pds
|
||||||
|
image: ghcr.io/bluesky-social/pds:0.4
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ./data:/pds
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
environment:
|
||||||
|
- VIRTUAL_HOST=bluesky.${DOMAIN}
|
||||||
|
- VIRTUAL_PORT=3005
|
||||||
|
- LETSENCRYPT_HOST=bluesky.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
ports:
|
||||||
|
- 3005:3005
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
4
botc/.gitignore
vendored
4
botc/.gitignore
vendored
|
@ -1,4 +0,0 @@
|
||||||
backup/*
|
|
||||||
wordpress/*
|
|
||||||
data/*
|
|
||||||
db/*
|
|
|
@ -1,34 +0,0 @@
|
||||||
services:
|
|
||||||
db:
|
|
||||||
image: mysql:8.0
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
MYSQL_DATABASE: clocktower
|
|
||||||
MYSQL_USER: wordpress
|
|
||||||
MYSQL_PASSWORD: ${DBPASS}
|
|
||||||
MYSQL_RANDOM_ROOT_PASSWORD: '1'
|
|
||||||
volumes:
|
|
||||||
- ./db:/var/lib/mysql:rw
|
|
||||||
wordpress:
|
|
||||||
depends_on:
|
|
||||||
- db
|
|
||||||
image: wordpress
|
|
||||||
restart: always
|
|
||||||
environment:
|
|
||||||
# PUID: ${UID}
|
|
||||||
# PGID: ${GID}
|
|
||||||
WORDPRESS_DB_HOST: botc-db-1
|
|
||||||
WORDPRESS_DB_USER: wordpress
|
|
||||||
WORDPRESS_DB_PASSWORD: ${DBPASS}
|
|
||||||
WORDPRESS_DB_NAME: clocktower
|
|
||||||
VIRTUAL_HOST: "www.phillybotc.com, phillybotc.com"
|
|
||||||
LETSENCRYPT_HOST: "phillybotc.com, www.phillybotc.com"
|
|
||||||
LETSENCRYPT_EMAIL: ${EMAIL}
|
|
||||||
# LETSENCRYPT_TEST: true
|
|
||||||
volumes:
|
|
||||||
- ./wordpress:/var/www/html:rw
|
|
||||||
- ./backup:/var/www/html/wp-content/updraft:rw
|
|
||||||
networks:
|
|
||||||
default:
|
|
||||||
name: nginx-proxy
|
|
||||||
external: true
|
|
|
@ -1,65 +0,0 @@
|
||||||
# Use postgres/example user/password credentials
|
|
||||||
version: '3.8'
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
database-data:
|
|
||||||
networks:
|
|
||||||
stack:
|
|
||||||
name: stack
|
|
||||||
external: false
|
|
||||||
services:
|
|
||||||
database:
|
|
||||||
container_name: database
|
|
||||||
image: postgres
|
|
||||||
restart: always
|
|
||||||
volumes:
|
|
||||||
- database-data:/var/lib/postgresql/data/
|
|
||||||
env_file: .env
|
|
||||||
networks:
|
|
||||||
- stack
|
|
||||||
calcom:
|
|
||||||
image: calcom.docker.scarf.sh/calcom/cal.com
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
args:
|
|
||||||
NEXT_PUBLIC_WEBAPP_URL: ${NEXT_PUBLIC_WEBAPP_URL}
|
|
||||||
NEXT_PUBLIC_API_V2_URL: ${NEXT_PUBLIC_API_V2_URL}
|
|
||||||
NEXT_PUBLIC_LICENSE_CONSENT: ${NEXT_PUBLIC_LICENSE_CONSENT}
|
|
||||||
CALCOM_TELEMETRY_DISABLED: ${CALCOM_TELEMETRY_DISABLED}
|
|
||||||
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
|
||||||
CALENDSO_ENCRYPTION_KEY: ${CALENDSO_ENCRYPTION_KEY}
|
|
||||||
DATABASE_URL: ${DATABASE_URL}
|
|
||||||
DATABASE_DIRECT_URL: ${DATABASE_URL}
|
|
||||||
network: stack
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- stack
|
|
||||||
ports:
|
|
||||||
- 3000:3000
|
|
||||||
env_file: .env
|
|
||||||
environment:
|
|
||||||
- DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
|
|
||||||
- DATABASE_DIRECT_URL=${DATABASE_URL}
|
|
||||||
depends_on:
|
|
||||||
- database
|
|
||||||
|
|
||||||
# Optional use of Prisma Studio. In production, comment out or remove the section below to prevent unwanted access to your database.
|
|
||||||
studio:
|
|
||||||
image: calcom.docker.scarf.sh/calcom/cal.com
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- stack
|
|
||||||
ports:
|
|
||||||
- 5555:5555
|
|
||||||
env_file: .env
|
|
||||||
environment:
|
|
||||||
- DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}/${POSTGRES_DB}
|
|
||||||
- DATABASE_DIRECT_URL=${DATABASE_URL}
|
|
||||||
depends_on:
|
|
||||||
- database
|
|
||||||
command:
|
|
||||||
- npx
|
|
||||||
- prisma
|
|
||||||
- studio
|
|
||||||
# END SECTION: Optional use of Prisma Studio.
|
|
0
wiki/.gitignore → docs/.gitignore
vendored
0
wiki/.gitignore → docs/.gitignore
vendored
|
@ -6,14 +6,14 @@ services:
|
||||||
- PUID=1000
|
- PUID=1000
|
||||||
- PGID=1000
|
- PGID=1000
|
||||||
- TZ=${TZ}
|
- TZ=${TZ}
|
||||||
- APP_URL=https://wiki.${DOMAIN}
|
- APP_URL=https://docs.${DOMAIN}
|
||||||
- DB_HOST=bookstack_db
|
- DB_HOST=bookstack_db
|
||||||
- DB_PORT=3306
|
- DB_PORT=3306
|
||||||
- DB_USER=bookstack
|
- DB_USER=bookstack
|
||||||
- DB_PASS=${DBPASS}
|
- DB_PASS=${DBPASS}
|
||||||
- DB_DATABASE=bookstackapp
|
- DB_DATABASE=bookstackapp
|
||||||
- VIRTUAL_HOST=wiki.${DOMAIN}
|
- VIRTUAL_HOST=docs.${DOMAIN}
|
||||||
- LETSENCRYPT_HOST=wiki.${DOMAIN}
|
- LETSENCRYPT_HOST=docs.${DOMAIN}
|
||||||
- LETSENCRYPT_EMAIL=${EMAIL}
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
volumes:
|
volumes:
|
||||||
- ./config:/config
|
- ./config:/config
|
2
games/.gitignore
vendored
2
games/.gitignore
vendored
|
@ -1 +1 @@
|
||||||
db/*
|
db
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
services:
|
services:
|
||||||
gamevault-backend:
|
gamevault-backend:
|
||||||
image: phalcode/gamevault-backend:latest
|
image: phalcode/gamevault-backend:13.1.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- PUID=${UID}
|
- PUID=${UID}
|
||||||
|
@ -17,7 +17,7 @@ services:
|
||||||
# Mount the folder where your games are
|
# Mount the folder where your games are
|
||||||
- ${DATA_LOCATION}:/files
|
- ${DATA_LOCATION}:/files
|
||||||
# Mount the folder where GameVault should store its images
|
# Mount the folder where GameVault should store its images
|
||||||
- ${DATA_LOCATION}/images:/images
|
- ${DATA_LOCATION}/images:/media
|
||||||
expose:
|
expose:
|
||||||
- "8080"
|
- "8080"
|
||||||
ports:
|
ports:
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
"url": "http://localhost:2368",
|
|
||||||
"server": {
|
|
||||||
"port": 2368,
|
|
||||||
"host": "::"
|
|
||||||
},
|
|
||||||
"mail": {
|
|
||||||
"transport": "SMTP",
|
|
||||||
"options": {
|
|
||||||
"service": "Mailgun",
|
|
||||||
"host": "smtp.mailgun.org",
|
|
||||||
"port": 587,
|
|
||||||
"secure": false,
|
|
||||||
"auth": {
|
|
||||||
"user": "",
|
|
||||||
"pass": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"logging": {
|
|
||||||
"transports": [
|
|
||||||
"file",
|
|
||||||
"stdout"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"process": "systemd",
|
|
||||||
"paths": {
|
|
||||||
"contentPath": "/var/lib/ghost/content"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
2
gitea/.gitignore
vendored
2
gitea/.gitignore
vendored
|
@ -1,3 +1,3 @@
|
||||||
config/*
|
config/*
|
||||||
data/*
|
data/*
|
||||||
db/*
|
db
|
||||||
|
|
|
@ -11,7 +11,7 @@ services:
|
||||||
- GITEA__database__USER=gitea
|
- GITEA__database__USER=gitea
|
||||||
- GITEA__database__PASSWD=${DBPASS}
|
- GITEA__database__PASSWD=${DBPASS}
|
||||||
- VIRTUAL_HOST=git.${DOMAIN},git.${DOMAIN}
|
- VIRTUAL_HOST=git.${DOMAIN},git.${DOMAIN}
|
||||||
- VIRTUAL_PORT=3000
|
- VIRTUAL_PORT=3004
|
||||||
- LETSENCRYPT_HOST=git.${DOMAIN},git.${DOMAIN}
|
- LETSENCRYPT_HOST=git.${DOMAIN},git.${DOMAIN}
|
||||||
- LETSENCRYPT_EMAIL=${EMAIL}
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
restart: always
|
restart: always
|
||||||
|
@ -21,10 +21,10 @@ services:
|
||||||
- /etc/timezone:/etc/timezone:ro
|
- /etc/timezone:/etc/timezone:ro
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
ports:
|
ports:
|
||||||
- "3000:3000"
|
- "3004:3004"
|
||||||
- "2222:2222"
|
- "2222:2222"
|
||||||
expose:
|
expose:
|
||||||
- "3000"
|
- "3004"
|
||||||
db:
|
db:
|
||||||
image: postgres:14
|
image: postgres:14
|
||||||
restart: always
|
restart: always
|
||||||
|
|
23
kiwix/docker-compose.yml
Normal file
23
kiwix/docker-compose.yml
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
services:
|
||||||
|
kiwix-serve:
|
||||||
|
ports:
|
||||||
|
- 8082:8082
|
||||||
|
image: ghcr.io/kiwix/kiwix-serve:latest
|
||||||
|
# uncomment next 4 lines to use it with local zim file in /tmp/zim
|
||||||
|
volumes:
|
||||||
|
- /tank/storage/media/Cloud/Kiwix:/data
|
||||||
|
command:
|
||||||
|
- 'wikipedia_en_all_maxi_2024-01.zim'
|
||||||
|
# uncomment next 2 lines to use it with remote zim file
|
||||||
|
environment:
|
||||||
|
- PORT=8082
|
||||||
|
- VIRTUAL_HOST=wiki.${DOMAIN}
|
||||||
|
- VIRTUAL_PORT=8082
|
||||||
|
- LETSENCRYPT_HOST=wiki.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
expose:
|
||||||
|
- "8082"
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
7
lazylibrarian/.env.example
Normal file
7
lazylibrarian/.env.example
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
DOMAIN=example.com
|
||||||
|
UID=1000
|
||||||
|
GID=1000
|
||||||
|
TZ=Etc/UTC
|
||||||
|
CONFIG_LOCATION=./config
|
||||||
|
DATA_LOCATION=./data
|
||||||
|
EMAIL=example@mail.com
|
25
lazylibrarian/docker-compose.yml
Normal file
25
lazylibrarian/docker-compose.yml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
services:
|
||||||
|
lazylibrarian:
|
||||||
|
image: lscr.io/linuxserver/lazylibrarian:latest
|
||||||
|
container_name: lazylibrarian
|
||||||
|
environment:
|
||||||
|
PUID: 1000
|
||||||
|
PGID: 1000
|
||||||
|
TZ: Etc/UTC
|
||||||
|
DOCKER_MODS: linuxserver/mods:universal-calibre|linuxserver/mods:lazylibrarian-ffmpeg #optional
|
||||||
|
VIRTUAL_HOST: lazylib.brodin.rocks
|
||||||
|
LETSENCRYPT_HOST: lazylib.brodin.rocks
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ./config/lazylibrarian:/config
|
||||||
|
- /media/seedbox:/downloads
|
||||||
|
- ${DATA_LOCATION}/Downloads:/downloads-local
|
||||||
|
- ${DATA_LOCATION}/Audiobooks:/audiobooks
|
||||||
|
- ${DATA_LOCATION}/Books:/books
|
||||||
|
ports:
|
||||||
|
- 5299:5299
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
7
monitoring/.env.example
Normal file
7
monitoring/.env.example
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
DOMAIN=example.com
|
||||||
|
UID=1000
|
||||||
|
GID=1000
|
||||||
|
TZ=Etc/UTC
|
||||||
|
CONFIG_LOCATION=./config
|
||||||
|
DATA_LOCATION=./data
|
||||||
|
EMAIL=example@mail.com
|
1
monitoring/.gitignore
vendored
Normal file
1
monitoring/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
data/
|
60
monitoring/docker-compose.yml
Normal file
60
monitoring/docker-compose.yml
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
services:
|
||||||
|
cadvisor:
|
||||||
|
image: gcr.io/cadvisor/cadvisor:latest
|
||||||
|
container_name: cadvisor
|
||||||
|
privileged: true
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- /:/rootfs:ro
|
||||||
|
- /var/run:/var/run:rw
|
||||||
|
- /sys:/sys:ro
|
||||||
|
- /var/lib/docker/:/var/lib/docker:ro
|
||||||
|
prometheus:
|
||||||
|
image: prom/prometheus
|
||||||
|
container_name: prometheus
|
||||||
|
user: '0'
|
||||||
|
command:
|
||||||
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
|
ports:
|
||||||
|
- 9090:9090
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/prometheus:/etc/prometheus
|
||||||
|
- ${DATA_LOCATION}/prometheus:/prometheus
|
||||||
|
node-exporter:
|
||||||
|
image: quay.io/prometheus/node-exporter:latest
|
||||||
|
container_name: node-exporter
|
||||||
|
command:
|
||||||
|
- '--path.rootfs=/host'
|
||||||
|
ports:
|
||||||
|
- 9100:9100
|
||||||
|
pid: host
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- '/:/host:ro,rslave'
|
||||||
|
smartctl-exporter:
|
||||||
|
image: prometheuscommunity/smartctl-exporter
|
||||||
|
container_name: smartctl-exporter
|
||||||
|
privileged: true
|
||||||
|
user: root
|
||||||
|
ports:
|
||||||
|
- "9633:9633"
|
||||||
|
grafana:
|
||||||
|
image: grafana/grafana-enterprise
|
||||||
|
container_name: grafana
|
||||||
|
restart: unless-stopped
|
||||||
|
user: '0'
|
||||||
|
environment:
|
||||||
|
- GF_SERVER_ROOT_URL=https://grafana.${DOMAIN}
|
||||||
|
- GF_INSTALL_PLUGINS=grafana-clock-panel
|
||||||
|
- VIRTUAL_HOST=grafana.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=grafana.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/grafana:/var/lib/grafana
|
||||||
|
ports:
|
||||||
|
- '3003:3000'
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
|
@ -1 +0,0 @@
|
||||||
client_max_body_size 100000m;
|
|
|
@ -10,7 +10,8 @@ services:
|
||||||
- ./nginx/certs:/etc/nginx/certs
|
- ./nginx/certs:/etc/nginx/certs
|
||||||
- ./nginx/html:/usr/share/nginx/html
|
- ./nginx/html:/usr/share/nginx/html
|
||||||
- ./nginx/vhost.d:/etc/nginx/vhost.d
|
- ./nginx/vhost.d:/etc/nginx/vhost.d
|
||||||
- ./client_max_body_size.conf:/etc/nginx/conf.d/client_max_body_size.conf:ro
|
- ./settings.conf:/etc/nginx/conf.d/settings.conf:ro
|
||||||
|
# - ./keepalive_requests.conf:/etc/nginx/conf.d/keepalive_requests.conf:ro
|
||||||
nginx-letsencrypt:
|
nginx-letsencrypt:
|
||||||
image: jrcs/letsencrypt-nginx-proxy-companion
|
image: jrcs/letsencrypt-nginx-proxy-companion
|
||||||
container_name: nginx-letsencrypt
|
container_name: nginx-letsencrypt
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
location /tt-rss/ {
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
|
|
||||||
proxy_pass http://127.0.0.1:8280/tt-rss/;
|
|
||||||
break;
|
|
||||||
}
|
|
2
nginx-proxy/settings.conf
Normal file
2
nginx-proxy/settings.conf
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
client_max_body_size 100000m;
|
||||||
|
keepalive_requests 1000000;
|
|
@ -26,9 +26,9 @@ services:
|
||||||
- PUID=${UID}
|
- PUID=${UID}
|
||||||
- PGID=${GID}
|
- PGID=${GID}
|
||||||
- TZ=${TZ}
|
- TZ=${TZ}
|
||||||
- VIRTUAL_HOST=ubooquity.${DOMAIN}
|
- VIRTUAL_HOST=comics.${DOMAIN}
|
||||||
- VIRTUAL_PORT=2202
|
- VIRTUAL_PORT=2202
|
||||||
- LETSENCRYPT_HOST=ubooquity.${DOMAIN}
|
- LETSENCRYPT_HOST=comics.${DOMAIN}
|
||||||
- LETSENCRYPT_EMAIL= ${EMAIL}
|
- LETSENCRYPT_EMAIL= ${EMAIL}
|
||||||
# - MAXMEM= #optional
|
# - MAXMEM= #optional
|
||||||
volumes:
|
volumes:
|
||||||
|
|
16
recipes/.env.example
Normal file
16
recipes/.env.example
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
DOMAIN=
|
||||||
|
EMAIl=
|
||||||
|
|
||||||
|
# random secret key, use for example `base64 /dev/urandom | head -c50` to generate one
|
||||||
|
SECRET_KEY=
|
||||||
|
|
||||||
|
# allowed hosts (see documentation), should be set to your hostname(s) but might be * (default) for some proxies/providers
|
||||||
|
# ALLOWED_HOSTS=recipes.mydomain.com
|
||||||
|
|
||||||
|
# add only a database password if you want to run with the default postgres, otherwise change settings accordingly
|
||||||
|
DB_ENGINE=django.db.backends.postgresql
|
||||||
|
POSTGRES_HOST=db_recipes
|
||||||
|
POSTGRES_DB=djangodb
|
||||||
|
POSTGRES_PORT=5432
|
||||||
|
POSTGRES_USER=djangouser
|
||||||
|
POSTGRES_PASSWORD=
|
33
recipes/docker-compose.yml
Normal file
33
recipes/docker-compose.yml
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
container_name: db-recipes
|
||||||
|
restart: always
|
||||||
|
image: postgres:16-alpine
|
||||||
|
volumes:
|
||||||
|
- ./data:/var/lib/postgresql/data
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
app:
|
||||||
|
restart: always
|
||||||
|
image: vabene1111/recipes
|
||||||
|
env_file:
|
||||||
|
- ./.env
|
||||||
|
environment:
|
||||||
|
VIRTUAL_HOST: "recipes.${DOMAIN}"
|
||||||
|
LETSENCRYPT_HOST: "recipes.${DOMAIN}"
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ./config/staticfiles:/opt/recipes/staticfiles
|
||||||
|
# Do not make this a bind mount, see https://docs.tandoor.dev/install/docker/#volumes-vs-bind-mounts
|
||||||
|
- nginx_config:/opt/recipes/nginx/conf.d
|
||||||
|
- ./config/mediafiles:/opt/recipes/mediafiles
|
||||||
|
ports:
|
||||||
|
- 8075:8080
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
||||||
|
volumes:
|
||||||
|
nginx_config:
|
40
restart_all.sh
Executable file
40
restart_all.sh
Executable file
|
@ -0,0 +1,40 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# cd nginx-proxy
|
||||||
|
# sudo docker compose restart
|
||||||
|
cd ../arr
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../dashboard
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../games
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../gita
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../lazylibrarian
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../nextcloud
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../plex
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../readers
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../recipes
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../rss-reader
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../sites
|
||||||
|
cd botc
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../fusiondance
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../gamesclub
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../photos
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ..
|
||||||
|
cd ../stats
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../vnc
|
||||||
|
sudo docker compose restart
|
||||||
|
cd ../wiki
|
||||||
|
sudo docker compose restart
|
|
@ -30,6 +30,17 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ${CONFIG_LOCATION}/mariadb:/config
|
- ${CONFIG_LOCATION}/mariadb:/config
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
rss-bridge:
|
||||||
|
image: rssbridge/rss-bridge:latest
|
||||||
|
environment:
|
||||||
|
- VIRTUAL_HOST=rss-bridge.${DOMAIN}
|
||||||
|
- LETSENCRYPT_HOST=rss-bridge.${DOMAIN}
|
||||||
|
- LETSENCRYPT_EMAIL=${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ${CONFIG_LOCATION}/rss-bridge:/config:rw
|
||||||
|
ports:
|
||||||
|
- 3002:80
|
||||||
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
default:
|
default:
|
||||||
name: nginx-proxy
|
name: nginx-proxy
|
||||||
|
|
29
run_all.sh
29
run_all.sh
|
@ -1,19 +1,40 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
cd arr
|
cd nginx-proxy
|
||||||
sudo docker compose up -d
|
sudo docker compose up -d
|
||||||
cd ../botc
|
cd ../arr
|
||||||
sudo docker compose up -d
|
sudo docker compose up -d
|
||||||
cd ../dashboard
|
cd ../dashboard
|
||||||
sudo docker compose up -d
|
sudo docker compose up -d
|
||||||
cd ../fusiondance
|
|
||||||
sudo docker compose up -d
|
|
||||||
cd ../games
|
cd ../games
|
||||||
sudo docker compose up -d
|
sudo docker compose up -d
|
||||||
|
cd ../gita
|
||||||
|
sudo docker compose up -d
|
||||||
|
cd ../lazylibrarian
|
||||||
|
sudo docker compose up -d
|
||||||
cd ../nextcloud
|
cd ../nextcloud
|
||||||
sudo docker compose up -d
|
sudo docker compose up -d
|
||||||
cd ../plex
|
cd ../plex
|
||||||
sudo docker compose up -d
|
sudo docker compose up -d
|
||||||
cd ../readers
|
cd ../readers
|
||||||
sudo docker compose up -d
|
sudo docker compose up -d
|
||||||
|
cd ../recipes
|
||||||
|
sudo docker compose up -d
|
||||||
cd ../rss-reader
|
cd ../rss-reader
|
||||||
|
sudo docker compose up -d
|
||||||
|
cd ../sites
|
||||||
|
cd botc
|
||||||
|
sudo docker compose up -d
|
||||||
|
cd ../fusiondance
|
||||||
|
sudo docker compose up -d
|
||||||
|
cd ../gamesclub
|
||||||
|
sudo docker compose up -d
|
||||||
|
cd ../photos
|
||||||
|
sudo docker compose up -d
|
||||||
|
cd ..
|
||||||
|
cd ../stats
|
||||||
|
sudo docker compose up -d
|
||||||
|
cd ../vnc
|
||||||
|
sudo docker compose up -d
|
||||||
|
cd ../wiki
|
||||||
|
sudo docker compose up -d
|
12
sites/analytics/.env.example
Normal file
12
sites/analytics/.env.example
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
EMAIL=example@gmail.com
|
||||||
|
DOMAIN=example.com
|
||||||
|
|
||||||
|
DATABASE_URL=postgresql://umami_user:umami_pass@db:5432/umami_db
|
||||||
|
DATABASE_TYPE=postgresql
|
||||||
|
HASH_SALT=generate_a_random_salt
|
||||||
|
|
||||||
|
POSTGRES_DB=umami_db
|
||||||
|
POSTGRES_USER=umami_user
|
||||||
|
POSTGRES_PASSWORD=umami_pass
|
||||||
|
|
||||||
|
APP_SECRET=random-string
|
33
sites/analytics/docker-compose.yml
Normal file
33
sites/analytics/docker-compose.yml
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
services:
|
||||||
|
umami:
|
||||||
|
image: ghcr.io/umami-software/umami:postgresql-latest
|
||||||
|
env_file: .env
|
||||||
|
environment:
|
||||||
|
TRACKER_SCRIPT_NAME: getinfo
|
||||||
|
API_COLLECT_ENDPOINT: all
|
||||||
|
VIRTUAL_HOST: "analytics.${DOMAIN}"
|
||||||
|
VIRTUAL_PORT: 3000
|
||||||
|
CLIENT_IP_HEADER: x-real-ip
|
||||||
|
# HOSTNAME: "analytics.${DOMAIN}"
|
||||||
|
# PORT: 3004
|
||||||
|
# FORCE_SSL: 0
|
||||||
|
LETSENCRYPT_HOST: "analytics.${DOMAIN}"
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 3000:3000
|
||||||
|
expose:
|
||||||
|
- 3000
|
||||||
|
db:
|
||||||
|
container_name: umami-db
|
||||||
|
image: postgres:15-alpine
|
||||||
|
env_file: .env
|
||||||
|
volumes:
|
||||||
|
- ./data:/var/lib/postgresql/data
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
|
@ -1,19 +1,19 @@
|
||||||
{
|
{
|
||||||
"url": "http://localhost:2368",
|
"url": "http://localhost:2371",
|
||||||
"server": {
|
"server": {
|
||||||
"port": 2368,
|
"port": 2371,
|
||||||
"host": "::"
|
"host": "::"
|
||||||
},
|
},
|
||||||
"mail": {
|
"mail": {
|
||||||
"transport": "SMTP",
|
"transport": "SMTP",
|
||||||
"options": {
|
"options": {
|
||||||
"service": "Mailgun",
|
"service": "Sendgrid",
|
||||||
"host": "smtp.mailgun.org",
|
"host": "smtp.sendgrid.net",
|
||||||
"port": 587,
|
"port": 587,
|
||||||
"secure": false,
|
"secure": true,
|
||||||
"auth": {
|
"auth": {
|
||||||
"user": "",
|
"user": "apikey",
|
||||||
"pass": ""
|
"pass": "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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
42
sites/botc/docker-compose.yml
Normal file
42
sites/botc/docker-compose.yml
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
services:
|
||||||
|
ghost:
|
||||||
|
image: ghost:5
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 2371:2368
|
||||||
|
expose:
|
||||||
|
- 2371
|
||||||
|
environment:
|
||||||
|
# see https://ghost.org/docs/config/#configuration-options
|
||||||
|
database__client: mysql
|
||||||
|
database__connection__host: botc-db-1
|
||||||
|
database__connection__user: root
|
||||||
|
database__connection__password: ${DBPASS}
|
||||||
|
database__connection__database: ghost
|
||||||
|
# VIRTUAL_HOST: "www.${DOMAIN}, ${DOMAIN}"
|
||||||
|
VIRTUAL_HOST: "www.phillybotc.com, phillybotc.com"
|
||||||
|
VIRTUAL_PORT: 2371
|
||||||
|
# LETSENCRYPT_HOST: "${DOMAIN}, www.${DOMAIN}"
|
||||||
|
LETSENCRYPT_HOST: "www.phillybotc.com, phillybotc.com"
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
# url: http://0.0.0.0:2371 #Dev
|
||||||
|
url: "https://phillybotc.com" #Prod
|
||||||
|
# contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired)
|
||||||
|
NODE_ENV: production
|
||||||
|
volumes:
|
||||||
|
- ./content:/var/lib/ghost/content
|
||||||
|
# - ./themes:/var/lib/ghost/current/content/themes:rw
|
||||||
|
db:
|
||||||
|
image: mysql:8.0
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: ghost
|
||||||
|
MYSQL_ROOT_PASSWORD: ${DBPASS}
|
||||||
|
volumes:
|
||||||
|
- ./data:/var/lib/mysql
|
||||||
|
volumes:
|
||||||
|
db:
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
2
sites/botc/update.sh
Executable file
2
sites/botc/update.sh
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
sudo docker cp config.development.json botc-ghost-1:/var/lib/ghost/.
|
||||||
|
sudo docker cp config.production.json botc-ghost-1:/var/lib/ghost/.
|
|
@ -1,3 +1,5 @@
|
||||||
DOMAIN=example.com
|
DOMAIN=example.com
|
||||||
DBPASS=password
|
DBPASS=password
|
||||||
EMAIL=example@mail.com
|
EMAIL=example@mail.com
|
||||||
|
DOMAIN=example.com
|
||||||
|
|
3
sites/fusiondance/.gitignore
vendored
Normal file
3
sites/fusiondance/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
db/*
|
||||||
|
content/*
|
||||||
|
config.*.json
|
1
sites/fusiondance/update.sh
Executable file
1
sites/fusiondance/update.sh
Executable file
|
@ -0,0 +1 @@
|
||||||
|
sudo docker cp config.production.json fusiondance-ghost-1:/var/lib/ghost/.
|
5
sites/gamesclub/.env.example
Normal file
5
sites/gamesclub/.env.example
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
DOMAIN=example.com
|
||||||
|
DBPASS=password
|
||||||
|
EMAIL=example@mail.com
|
||||||
|
DOMAIN=example.com
|
||||||
|
|
3
sites/gamesclub/.gitignore
vendored
Normal file
3
sites/gamesclub/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
db/*
|
||||||
|
content/*
|
||||||
|
config.*.json
|
41
sites/gamesclub/docker-compose.yml
Normal file
41
sites/gamesclub/docker-compose.yml
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
services:
|
||||||
|
|
||||||
|
ghost:
|
||||||
|
image: ghost:5
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 2369:2368
|
||||||
|
expose:
|
||||||
|
- 2369
|
||||||
|
environment:
|
||||||
|
# see https://ghost.org/docs/config/#configuration-options
|
||||||
|
database__client: mysql
|
||||||
|
database__connection__host: gamesclub-db-1
|
||||||
|
database__connection__user: root
|
||||||
|
database__connection__password: ${DBPASS}
|
||||||
|
database__connection__database: ghost
|
||||||
|
VIRTUAL_HOST: "${DOMAIN}, www.${DOMAIN}"
|
||||||
|
VIRTUAL_PORT: 2369
|
||||||
|
LETSENCRYPT_HOST: "${DOMAIN}, www.${DOMAIN}"
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
# url: http://0.0.0.0:2369 #Dev
|
||||||
|
url: "https://${DOMAIN}" #Prod
|
||||||
|
# contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired)
|
||||||
|
# NODE_ENV: development
|
||||||
|
volumes:
|
||||||
|
- ./content:/var/lib/ghost/content
|
||||||
|
# - ./themes:/var/lib/ghost/current/content/themes:rw
|
||||||
|
db:
|
||||||
|
image: mysql:8.0
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: ghost
|
||||||
|
MYSQL_ROOT_PASSWORD: ${DBPASS}
|
||||||
|
volumes:
|
||||||
|
- db:/var/lib/mysql
|
||||||
|
volumes:
|
||||||
|
db:
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
2
sites/gamesclub/update.sh
Executable file
2
sites/gamesclub/update.sh
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
sudo docker cp config.development.json gamesclub-ghost-1:/var/lib/ghost/.
|
||||||
|
sudo docker cp config.production.json gamesclub-ghost-1:/var/lib/ghost/.
|
5
sites/photos/.env.example
Normal file
5
sites/photos/.env.example
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
DOMAIN=example.com
|
||||||
|
DBPASS=password
|
||||||
|
EMAIL=example@mail.com
|
||||||
|
DOMAIN=example.com
|
||||||
|
|
3
sites/photos/.gitignore
vendored
Normal file
3
sites/photos/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
db/*
|
||||||
|
content/*
|
||||||
|
config.*.json
|
42
sites/photos/docker-compose.yml
Normal file
42
sites/photos/docker-compose.yml
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
services:
|
||||||
|
ghost:
|
||||||
|
image: ghost:5
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 2370:2368
|
||||||
|
expose:
|
||||||
|
- 2370
|
||||||
|
environment:
|
||||||
|
# see https://ghost.org/docs/config/#configuration-options
|
||||||
|
database__client: mysql
|
||||||
|
database__connection__host: photos-db-1
|
||||||
|
database__connection__user: root
|
||||||
|
database__connection__password: ${DBPASS}
|
||||||
|
database__connection__database: ghost
|
||||||
|
# VIRTUAL_HOST: "www.${DOMAIN}, ${DOMAIN}"
|
||||||
|
VIRTUAL_HOST: "photos.${DOMAIN}"
|
||||||
|
VIRTUAL_PORT: 2370
|
||||||
|
# LETSENCRYPT_HOST: "${DOMAIN}, www.${DOMAIN}"
|
||||||
|
LETSENCRYPT_HOST: "photos.${DOMAIN}"
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
# url: http://0.0.0.0:2370 #Dev
|
||||||
|
url: "https://photos.${DOMAIN}" #Prod
|
||||||
|
# contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired)
|
||||||
|
NODE_ENV: production
|
||||||
|
volumes:
|
||||||
|
- ./content:/var/lib/ghost/content
|
||||||
|
# - ./themes:/var/lib/ghost/current/content/themes:rw
|
||||||
|
db:
|
||||||
|
image: mysql:8.0
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: ghost
|
||||||
|
MYSQL_ROOT_PASSWORD: ${DBPASS}
|
||||||
|
volumes:
|
||||||
|
- db:/var/lib/mysql
|
||||||
|
volumes:
|
||||||
|
db:
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
2
sites/photos/update.sh
Executable file
2
sites/photos/update.sh
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
sudo docker cp config.development.json photos-ghost-1:/var/lib/ghost/.
|
||||||
|
sudo docker cp config.production.json photos-ghost-1:/var/lib/ghost/.
|
5
sites/techblog/.env.example
Normal file
5
sites/techblog/.env.example
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
DOMAIN=example.com
|
||||||
|
DBPASS=password
|
||||||
|
EMAIL=example@mail.com
|
||||||
|
DOMAIN=example.com
|
||||||
|
|
3
sites/techblog/.gitignore
vendored
Normal file
3
sites/techblog/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
db/*
|
||||||
|
content/*
|
||||||
|
config.*.json
|
40
sites/techblog/docker-compose.yml
Normal file
40
sites/techblog/docker-compose.yml
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
services:
|
||||||
|
ghost:
|
||||||
|
image: ghost:5
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 2373:2368
|
||||||
|
expose:
|
||||||
|
- 2373
|
||||||
|
environment:
|
||||||
|
# see https://ghost.org/docs/config/#configuration-options
|
||||||
|
database__client: mysql
|
||||||
|
database__connection__host: techblog-db-1
|
||||||
|
database__connection__user: root
|
||||||
|
database__connection__password: ${DBPASS}
|
||||||
|
database__connection__database: ghost
|
||||||
|
VIRTUAL_HOST: "blog.${DOMAIN}"
|
||||||
|
VIRTUAL_PORT: 2373
|
||||||
|
LETSENCRYPT_HOST: "blog.${DOMAIN}"
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
# url: http://0.0.0.0:2373 #Dev
|
||||||
|
url: "https://blog.${DOMAIN}" #Prod
|
||||||
|
# contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired)
|
||||||
|
# NODE_ENV: development
|
||||||
|
volumes:
|
||||||
|
- ./content:/var/lib/ghost/content
|
||||||
|
# - ./themes:/var/lib/ghost/current/content/themes:rw
|
||||||
|
db:
|
||||||
|
image: mysql:8.0
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: ghost
|
||||||
|
MYSQL_ROOT_PASSWORD: ${DBPASS}
|
||||||
|
volumes:
|
||||||
|
- db:/var/lib/mysql
|
||||||
|
volumes:
|
||||||
|
db:
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
2
sites/techblog/update.sh
Executable file
2
sites/techblog/update.sh
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
sudo docker cp config.development.json techblog-ghost-1:/var/lib/ghost/.
|
||||||
|
sudo docker cp config.production.json techblog-ghost-1:/var/lib/ghost/.
|
48
stats/.env.example
Normal file
48
stats/.env.example
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
DBPASS=password
|
||||||
|
REDISPASS=password
|
||||||
|
EMAIL=bjageman@gmail.com
|
||||||
|
TZ=America/New_York
|
||||||
|
DOMAIN=brodin.rocks
|
||||||
|
|
||||||
|
# For all variables, see https://docs.lightdash.com/self-host/customize-deployment/environment-variables
|
||||||
|
|
||||||
|
PORT=4018
|
||||||
|
|
||||||
|
SITE_URL=http://localhost:4018
|
||||||
|
|
||||||
|
PGHOST=metabase-db
|
||||||
|
PGPORT=5432
|
||||||
|
PGUSER=postgres
|
||||||
|
PGDATABASE=postgres
|
||||||
|
PGPASSWORD="password"
|
||||||
|
LIGHTDASH_SECRET="not very secret"
|
||||||
|
|
||||||
|
SECURE_COOKIES=false
|
||||||
|
TRUST_PROXY=false
|
||||||
|
LIGHTDASH_LOG_LEVEL=debug
|
||||||
|
LIGHTDASH_QUERY_MAX_LIMIT=5000
|
||||||
|
|
||||||
|
|
||||||
|
NODE_ENV=production
|
||||||
|
LIGHTDASH_LOG_LEVEL=debug
|
||||||
|
LIGHTDASH_QUERY_MAX_LIMIT=5000
|
||||||
|
|
||||||
|
ALLOW_MULTIPLE_ORGS=false
|
||||||
|
|
||||||
|
DBT_PROJECT_DIR=./dbt
|
||||||
|
|
||||||
|
SCHEDULER_ENABLED=true
|
||||||
|
LIGHTDASH_MAX_PAYLOAD=5mb
|
||||||
|
|
||||||
|
#AUTH_DISABLE_PASSWORD_AUTHENTICATION=
|
||||||
|
#AUTH_GOOGLE_OAUTH2_CLIENT_ID=
|
||||||
|
#AUTH_GOOGLE_OAUTH2_CLIENT_SECRET=
|
||||||
|
|
||||||
|
#EMAIL_SMTP_HOST=
|
||||||
|
#EMAIL_SMTP_PORT=
|
||||||
|
#EMAIL_SMTP_SECURE=
|
||||||
|
#EMAIL_SMTP_USER=
|
||||||
|
#EMAIL_SMTP_PASSWORD=
|
||||||
|
#EMAIL_SMTP_ALLOW_INVALID_CERT=
|
||||||
|
#EMAIL_SMTP_SENDER_NAME=
|
||||||
|
#EMAIL_SMTP_SENDER_EMAIL=
|
1
stats/.gitignore
vendored
Normal file
1
stats/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
noco/
|
65
stats/docker-compose.yml
Normal file
65
stats/docker-compose.yml
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
services:
|
||||||
|
share-db:
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: share-db
|
||||||
|
POSTGRES_PASSWORD: password
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
image: postgres
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./data/sharedb:/var/lib/postgresql/data
|
||||||
|
noco:
|
||||||
|
container_name: noco
|
||||||
|
image: nocodb/nocodb:latest
|
||||||
|
depends_on:
|
||||||
|
- noco-db
|
||||||
|
ports:
|
||||||
|
- 3006:8080
|
||||||
|
environment:
|
||||||
|
NC_DB: pg://noco-db:5432?u=postgres&p=password&d=database-noco
|
||||||
|
VIRTUAL_HOST: sheets.phillybotc.com
|
||||||
|
LETSENCRYPT_HOST: sheets.phillybotc.com
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
volumes:
|
||||||
|
- ./noco:/usr/app/data
|
||||||
|
noco-db:
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: database-noco
|
||||||
|
POSTGRES_PASSWORD: password
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
image: postgres
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./data/nocodb:/var/lib/postgresql/data
|
||||||
|
metabase:
|
||||||
|
container_name: metabase
|
||||||
|
image: metabase/metabase:latest
|
||||||
|
depends_on:
|
||||||
|
- metabase-db
|
||||||
|
ports:
|
||||||
|
- 4018:3000
|
||||||
|
environment:
|
||||||
|
JAVA_OPTS: "-Xmx1g" #-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/directory
|
||||||
|
MB_DB_TYPE: postgres
|
||||||
|
MB_DB_DBNAME: ${PGDATABASE:-postgres}
|
||||||
|
MB_DB_PORT: 5432
|
||||||
|
MB_DB_USER: ${PGUSER:-postgres}
|
||||||
|
MB_DB_PASS: ${PGPASSWORD}
|
||||||
|
MB_DB_HOST: ${PGHOST}
|
||||||
|
VIRTUAL_HOST: "dash.phillybotc.com"
|
||||||
|
LETSENCRYPT_HOST: "dash.phillybotc.com"
|
||||||
|
LETSENCRYPT_EMAIL: ${EMAIL}
|
||||||
|
metabase-db:
|
||||||
|
container_name: metabase-db
|
||||||
|
image: postgres:15.4
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
POSTGRES_PASSWORD: ${PGPASSWORD}
|
||||||
|
POSTGRES_USER: ${PGUSER:-postgres}
|
||||||
|
POSTGRES_DB: ${PGDATABASE:-postgres}
|
||||||
|
volumes:
|
||||||
|
- ./data/metabase:/var/lib/postgresql/data
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
name: nginx-proxy
|
||||||
|
external: true
|
Loading…
Reference in New Issue
Block a user