Added several docker-compose files and Caddy documentation

master
William Lewis 9 months ago
parent da7737bc34
commit 5581a18187

Binary file not shown.

Binary file not shown.

@ -0,0 +1,85 @@
version: "2.1"
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:10.8.8 #Choosing a specific version is a better practice that using latest
container_name: arrfrontend-jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
# - JELLYFIN_PublishedServerUrl=192.168.0.5 #optional
volumes:
- ./jellyfin-config:/config
- jellyfin_tvshows:/data/tvshows # This and below are the NFS mounted volumes defined at the end of the file
- jellyfin_movies:/data/movies
- jellyfin_music:/data/music
- jellyfin_longform:/data/longform
- jellyfin_channels:/data/channels
ports:
- 8096:8096
- 8920:8920 #optional
- 7359:7359/udp #optional
- 1900:1900/udp #optional
restart: unless-stopped
ombi:
image: ghcr.io/linuxserver/ombi:4.39.1
container_name: arrfrontend-ombi_app
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
volumes:
- ./ombi-config:/config
ports:
- 8000:3579
# depends_on:
# - "mysql_db"
# mysql_db:
# image: "mysql:5.7"
# container_name: arrfrontend-ombi_mysql
# restart: unless-stopped
# environment:
# MYSQL_ROOT_PASSWORD: 123 #change your root password here
# volumes:
# - ./ombi-mysql:/var/lib/mysql
# phpmyadmin:
# image: phpmyadmin/phpmyadmin
# container_name: ombi_phpmyadmin
# restart: unless-stopped
# environment:
# PMA_HOST: mysql_db
#ports:
#- '8083:80'
# depends_on:
# - "mysql_db"
volumes:
jellyfin_movies:
driver_opts:
type: "nfs"
o: "addr=10.0.10.10,nolock,soft,rw"
device: ":/mnt/General_Tank/General/MediaStorage/deluge_downloads/complete/Movies"
jellyfin_tvshows:
driver_opts:
type: "nfs"
o: "addr=10.0.10.10,nolock,soft,rw"
device: ":/mnt/General_Tank/General/MediaStorage/deluge_downloads/complete/TVShows"
jellyfin_music:
driver_opts:
type: "nfs"
o: "addr=10.0.10.10,nolock,soft,rw"
device: ":/mnt/General_Tank/General/MediaStorage/deluge_downloads/complete/Music"
jellyfin_longform:
driver_opts:
type: "nfs"
o: "addr=10.0.10.10,nolock,soft,rw"
device: ":/mnt/General_Tank/General/MediaStorage/deluge_downloads/complete/LongFormVideos"
jellyfin_channels:
driver_opts:
type: "nfs"
o: "addr=10.0.10.10,nolock,soft,rw"
device: ":/mnt/General_Tank/General/MediaStorage/deluge_downloads/complete/YoutubeVideos"

@ -0,0 +1,11 @@
# Example 1: This will redirect requests to the below url to the internal address below - 10.0.10.21:3333
cyberchef.veritablevalor.com {
reverse_proxy 10.0.10.21:3333
}
# Example 2: This will do the same as above, but if the requester's IP address is outside of my LAN subnet, they will recieve a "Not Permitted" error 403.
home.veritablevalor.com {
reverse_proxy 10.0.10.21:5005
@blocked not remote_ip 10.0.0.0/8
respond @blocked "Not permitted" 403
}

@ -0,0 +1,79 @@
# Caddy
## Explaination
Caddy exposes ports 80 and 443 on the server it is running on.
```
80 ==> http
443 ==> https
```
When Caddy receives a request directed at one of your urls, it will redirect that to the appropriate back-end service. It will also automatically configure SSL (which enables https) for services that otherwise wouldn't have it.
## Prerequisites
### Ports
Caddy needs the ports ```80``` and ```443``` - do not change them like you might with other containers. This also means that you want your service exposed publically so that you can access your services outside of your network. You will want to port-forward those ports to your server.
### Domain Name
Register a domain name of your choice. I recommend using [Epik](https://registrar.epik.com) for this (since they fully support wildcard domains).
Once you buy a domain name, you are going to create an ```A``` host record. This record will look something like below. It forwards your domain name to another IP address.
```
Host: gitea.veritablevalor.com
Points to: 144.202.71.63
```
(*Note: In the above host entry, 'gitea' is the subdomain, and 'veritablevalor' is the domain*)
Now when a computer tries to contact the host above, it will resolve to that IP address - my server (which has ports ```80``` and ```443``` ready to go).
### Wild Card Domains
A wild card domain is a domain name that matches anything with a certain specificity. For example, if I had an ```A``` record like below...
```
Host: *.veritablevalor.com
Points to: 144.202.71.63
```
...then any request ending in the domain name ```veritablevalor.com``` would be redirected/resolved to ```144.202.71.63```. All of the entries below would point to my server.
```
gitea.veritablevalor.com
nextcloud.veritablevalor.com
adwfageawdawd.veritablevalor.com
rob-boss.veritablevalor.com
```
A wild card domain record allows you to implicitly register any arbitrary subdomain to a specific server.
## Caddyfile
Below are some examples for configuring Caddy with the Caddyfile. These are by no means exhaustive - just what I use and am familier with.
### **Example 1: Basic Reverse Proxy**
This will redirect requests to the below url to the internal address below - 10.0.10.21:3333
```
cyberchef.veritablevalor.com {
reverse_proxy 10.0.10.21:3333
}
```
With the above setup, if you were to visit https://cyberchef.veritablevalor.com you would land on the same webpage as if you visited http://10.0.10.21:3333 (within my network). The key differences are you no longer have to remember an IP address and port, you have https (SSL) so the connection to the service is encrypted, and the service can be publically accessible with extra port forwarding for each service.
### **Example 2: Reverse Proxy that only permits LAN devices**
This is similar to the above, but if the requester's IP address is outside of my LAN subnet (```10.0.0.0/8```), they will recieve a ```"Not Permitted" error 403``` message. This effectively means that only LAN devices can use the service connected to "home.veritablevalor.com".
```
home.veritablevalor.com {
reverse_proxy 10.0.10.21:5005
@blocked not remote_ip 10.0.0.0/8
respond @blocked "Not permitted" 403
}
```
### **Example 3: Reverse Proxy to an https service**
If the service you are redirecting to already has ```https``` enabled, you should ideally disable https on that service and let Caddy handle SSL certificates.
If this is not an option, you can use the below Caddyfile snipet to point to an internal https service.
```
nextcloud.veritablevalor.com {
reverse_proxy 10.0.10.21:4433 {
transport http {
tls_insecure_skip_verify
}
}
}
```

@ -0,0 +1,15 @@
version: '3.7'
services:
caddy:
container_name: caddy
image: caddy:2.6.4-alpine
restart: unless-stopped
# command: caddy reverse-proxy --from https://my-domain.com:443 --to http://my-app:3000
ports:
- 80:80 #http://
- 443:443 #https://
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile #This file will need to exist before you start this stack
- ./data:/data
- ./config:/config

@ -0,0 +1,25 @@
version: "2.1"
services:
duplicati:
image: lscr.io/linuxserver/duplicati:2.0.6
container_name: duplicati
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
# - CLI_ARGS= #optional
volumes:
- /home/william/duplicati/config:/config
- backups:/backups # Mount a location to be configured for backups to be placed
- /home/william:/source-home # Mount as many places as you would backup files from
- /etc/wireguard:/source-wireguard
ports:
- 8200:8200
restart: unless-stopped
volumes:
backups:
driver_opts:
type: "nfs"
o: "addr=10.0.10.10,nolock,soft,rw"
device: ":/mnt/General_Tank/DockerBinds/docker/duplicati-backups/arch-sapphire"

@ -0,0 +1,12 @@
version: '3.7'
services:
factorio:
container_name: factorio
image: factoriotools/factorio:1.1.61
restart: always
ports:
- 34197:34197/udp
- 27015:27015/tcp
volumes:
- ./data:/factorio

@ -0,0 +1,4 @@
MYSQL_RANDOM_ROOT_PASSWORD=yes
MYSQL_USER=firefly
MYSQL_PASSWORD=secret_firefly_password
MYSQL_DATABASE=firefly

@ -0,0 +1,315 @@
# You can leave this on "local". If you change it to production most console commands will ask for extra confirmation.
# Never set it to "testing".
APP_ENV=local
# Set to true if you want to see debug information in error screens.
APP_DEBUG=false
# This should be your email address.
# If you use Docker or similar, you can set this variable from a file by using SITE_OWNER_FILE
# The variable is used in some errors shown to users who aren't admin.
SITE_OWNER=mail@example.com
# The encryption key for your sessions. Keep this very secure.
# Change it to a string of exactly 32 chars or use something like `php artisan key:generate` to generate it.
# If you use Docker or similar, you can set this variable from a file by using APP_KEY_FILE
#
# Avoid the "#" character in your APP_KEY, it may break things.
#
APP_KEY=SomeRandomStringOf32CharsExactly
# Firefly III will launch using this language (for new users and unauthenticated visitors)
# For a list of available languages: https://github.com/firefly-iii/firefly-iii/tree/main/resources/lang
#
# If text is still in English, remember that not everything may have been translated.
DEFAULT_LANGUAGE=en_US
# The locale defines how numbers are formatted.
# by default this value is the same as whatever the language is.
DEFAULT_LOCALE=equal
# Change this value to your preferred time zone.
# Example: Europe/Amsterdam
# For a list of supported time zones, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ=Europe/Amsterdam
# TRUSTED_PROXIES is a useful variable when using Docker and/or a reverse proxy.
# Set it to ** and reverse proxies work just fine.
TRUSTED_PROXIES=
# The log channel defines where your log entries go to.
# Several other options exist. You can use 'single' for one big fat error log (not recommended).
# Also available are 'syslog', 'errorlog' and 'stdout' which will log to the system itself.
# A rotating log option is 'daily', creates 5 files that (surprise) rotate.
# A cool option is 'papertrail' for cloud logging
# Default setting 'stack' will log to 'daily' and to 'stdout' at the same time.
LOG_CHANNEL=stack
#
# Used when logging to papertrail:
#
PAPERTRAIL_HOST=
PAPERTRAIL_PORT=
# Log level. You can set this from least severe to most severe:
# debug, info, notice, warning, error, critical, alert, emergency
# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
# nothing will get logged, ever.
APP_LOG_LEVEL=notice
# Audit log level.
# Set this to "emergency" if you dont want to store audit logs, leave on info otherwise.
AUDIT_LOG_LEVEL=info
# Database credentials. Make sure the database exists. I recommend a dedicated user for Firefly III
# For other database types, please see the FAQ: https://docs.firefly-iii.org/firefly-iii/faq/self-hosted/#i-want-to-use-sqlite
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
# Use "pgsql" for PostgreSQL
# Use "mysql" for MySQL and MariaDB.
# Use "sqlite" for SQLite.
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=firefly
DB_USERNAME=firefly
DB_PASSWORD=secret_firefly_password
# leave empty or omit when not using a socket connection
DB_SOCKET=
# MySQL supports SSL. You can configure it here.
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
MYSQL_USE_SSL=false
MYSQL_SSL_VERIFY_SERVER_CERT=true
# You need to set at least of these options
MYSQL_SSL_CAPATH=/etc/ssl/certs/
MYSQL_SSL_CA=
MYSQL_SSL_CERT=
MYSQL_SSL_KEY=
MYSQL_SSL_CIPHER=
# PostgreSQL supports SSL. You can configure it here.
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
PGSQL_SSL_MODE=prefer
PGSQL_SSL_ROOT_CERT=null
PGSQL_SSL_CERT=null
PGSQL_SSL_KEY=null
PGSQL_SSL_CRL_FILE=null
# more PostgreSQL settings
PGSQL_SCHEMA=public
# If you're looking for performance improvements, you could install memcached or redis
CACHE_DRIVER=file
SESSION_DRIVER=file
# If you set either of the options above to 'redis', you might want to update these settings too
# If you use Docker or similar, you can set REDIS_HOST_FILE, REDIS_PASSWORD_FILE or
# REDIS_PORT_FILE to set the value from a file instead of from an environment variable
# can be tcp, unix or http
REDIS_SCHEME=tcp
# use only when using 'unix' for REDIS_SCHEME. Leave empty otherwise.
REDIS_PATH=
# use only when using 'tcp' or 'http' for REDIS_SCHEME. Leave empty otherwise.
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
# Use only with Redis 6+ with proper ACL set. Leave empty otherwise.
REDIS_USERNAME=
REDIS_PASSWORD=
# always use quotes and make sure redis db "0" and "1" exists. Otherwise change accordingly.
REDIS_DB="0"
REDIS_CACHE_DB="1"
# Cookie settings. Should not be necessary to change these.
# If you use Docker or similar, you can set COOKIE_DOMAIN_FILE to set
# the value from a file instead of from an environment variable
# Setting samesite to "strict" may give you trouble logging in.
COOKIE_PATH="/"
COOKIE_DOMAIN=
COOKIE_SECURE=false
COOKIE_SAMESITE=lax
# If you want Firefly III to email you, update these settings
# For instructions, see: https://docs.firefly-iii.org/firefly-iii/advanced-installation/email/#email
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
MAIL_MAILER=log
MAIL_HOST=null
MAIL_PORT=2525
MAIL_FROM=changeme@example.com
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_SENDMAIL_COMMAND=
# Other mail drivers:
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
MAILGUN_DOMAIN=
MAILGUN_SECRET=
# If you are on EU region in mailgun, use api.eu.mailgun.net, otherwise use api.mailgun.net
# If you use Docker or similar, you can set this variable from a file by appending it with _FILE
MAILGUN_ENDPOINT=api.mailgun.net
# If you use Docker or similar, you can set these variables from a file by appending them with _FILE
MANDRILL_SECRET=
SPARKPOST_SECRET=
# Firefly III can send you the following messages.
SEND_ERROR_MESSAGE=true
# These messages contain (sensitive) transaction information:
SEND_REPORT_JOURNALS=true
# Set this value to true if you want to set the location of certain things, like transactions.
# Since this involves an external service, it's optional and disabled by default.
ENABLE_EXTERNAL_MAP=false
# Set this value to true if you want Firefly III to download currency exchange rates
# from the internet. These rates are hosted by the creator of Firefly III inside
# an Azure Storage Container.
# Not all currencies may be available. Rates may be wrong.
ENABLE_EXTERNAL_RATES=false
# The map will default to this location:
MAP_DEFAULT_LAT=51.983333
MAP_DEFAULT_LONG=5.916667
MAP_DEFAULT_ZOOM=6
#
# Firefly III authentication settings
#
#
# Firefly III supports a few authentication methods:
# - 'web' (default, uses built in DB)
# - 'remote_user_guard' for Authelia etc
# Read more about these settings in the documentation.
# https://docs.firefly-iii.org/firefly-iii/advanced-installation/authentication
#
# LDAP is no longer supported :(
#
AUTHENTICATION_GUARD=web
#
# Remote user guard settings
#
AUTHENTICATION_GUARD_HEADER=REMOTE_USER
AUTHENTICATION_GUARD_EMAIL=
#
# Firefly III generates a basic keypair for your OAuth tokens.
# If you want, you can overrule the key with your own (secure) value.
# It's also possible to set PASSPORT_PUBLIC_KEY_FILE or PASSPORT_PRIVATE_KEY_FILE
# if you're using Docker secrets or similar solutions for secret management
#
PASSPORT_PRIVATE_KEY=
PASSPORT_PUBLIC_KEY=
#
# Extra authentication settings
#
CUSTOM_LOGOUT_URL=
# You can disable the X-Frame-Options header if it interferes with tools like
# Organizr. This is at your own risk. Applications running in frames run the risk
# of leaking information to their parent frame.
DISABLE_FRAME_HEADER=false
# You can disable the Content Security Policy header when you're using an ancient browser
# or any version of Microsoft Edge / Internet Explorer (which amounts to the same thing really)
# This leaves you with the risk of not being able to stop XSS bugs should they ever surface.
# This is at your own risk.
DISABLE_CSP_HEADER=false
# If you wish to track your own behavior over Firefly III, set valid analytics tracker information here.
# Nobody uses this except for me on the demo site. But hey, feel free to use this if you want to.
# Do not prepend the TRACKER_URL with http:// or https://
# The only tracker supported is Matomo.
# You can set the following variables from a file by appending them with _FILE:
TRACKER_SITE_ID=
TRACKER_URL=
#
# Firefly III supports webhooks. These are security sensitive and must be enabled manually first.
#
ALLOW_WEBHOOKS=false
#
# The static cron job token can be useful when you use Docker and wish to manage cron jobs.
# 1. Set this token to any 32-character value (this is important!).
# 2. Use this token in the cron URL instead of a user's command line token that you can find in /profile
#
# For more info: https://docs.firefly-iii.org/firefly-iii/advanced-installation/cron/
#
# You can set this variable from a file by appending it with _FILE
#
STATIC_CRON_TOKEN=
# You can fine tune the start-up of a Docker container by editing these environment variables.
# Use this at your own risk. Disabling certain checks and features may result in lots of inconsistent data.
# However if you know what you're doing you can significantly speed up container start times.
# Set each value to true to enable, or false to disable.
# Set this to true to build all locales supported by Firefly III.
# This may take quite some time (several minutes) and is generally not recommended.
# If you wish to change or alter the list of locales, start your Docker container with
# `docker run -v locale.gen:/etc/locale.gen -e DKR_BUILD_LOCALE=true`
# and make sure your preferred locales are in your own locale.gen.
DKR_BUILD_LOCALE=false
# Check if the SQLite database exists. Can be skipped if you're not using SQLite.
# Won't significantly speed up things.
DKR_CHECK_SQLITE=true
# Run database creation and migration commands. Disable this only if you're 100% sure the DB exists
# and is up to date.
DKR_RUN_MIGRATION=true
# Run database upgrade commands. Disable this only when you're 100% sure your DB is up-to-date
# with the latest fixes (outside of migrations!)
DKR_RUN_UPGRADE=true
# Verify database integrity. Includes all data checks and verifications.
# Disabling this makes Firefly III assume your DB is intact.
DKR_RUN_VERIFY=true
# Run database reporting commands. When disabled, Firefly III won't go over your data to report current state.
# Disabling this should have no impact on data integrity or safety but it won't warn you of possible issues.
DKR_RUN_REPORT=true
# Generate OAuth2 keys.
# When disabled, Firefly III won't attempt to generate OAuth2 Passport keys. This won't be an issue, IFF (if and only if)
# you had previously generated keys already and they're stored in your database for restoration.
DKR_RUN_PASSPORT_INSTALL=true
# Leave the following configuration vars as is.
# Unless you like to tinker and know what you're doing.
APP_NAME=FireflyIII
BROADCAST_DRIVER=log
QUEUE_DRIVER=sync
CACHE_PREFIX=firefly
PUSHER_KEY=
IPINFO_TOKEN=
PUSHER_SECRET=
PUSHER_ID=
DEMO_USERNAME=
DEMO_PASSWORD=
FIREFLY_III_LAYOUT=v1
#
# If you have trouble configuring your Firefly III installation, DON'T BOTHER setting this variable.
# It won't work. It doesn't do ANYTHING. Don't believe the lies you read online. I'm not joking.
# This configuration value WILL NOT HELP.
#
# Notable exception to this rule is Synology, which, according to some users, will use APP_URL to rewrite stuff.
#
# This variable is ONLY used in some of the emails Firefly III sends around. Nowhere else.
# So when configuring anything WEB related this variable doesn't do anything. Nothing
#
# If you're stuck I understand you get desperate but look SOMEWHERE ELSE.
#
APP_URL=http://localhost

@ -0,0 +1,24 @@
version: '3.3'
services:
fireflyiii:
container_name: firefly-app
image: fireflyiii/core:latest
restart: always
volumes:
- ./upload:/var/www/html/storage/upload
env_file: .env
ports:
- 8080:8080
depends_on:
- mysql
mysql:
container_name: firefly-mysql
image: mysql:latest
restart: always
ports:
- 3306:3306
volumes:
- ./mysqldata:/var/lib/mysql
env_file: .db.env

@ -0,0 +1,22 @@
version: '3.6'
services:
flame:
image: pawelmalak/flame
container_name: flame
volumes:
- ./data:/app/data
#- /var/run/docker.sock:/var/run/docker.sock # optional but required for Docker integration
ports:
- 5005:5005
# secrets:
#- password # optional but required for (1)
environment:
- PASSWORD=<PASSWORD>
#- PASSWORD_FILE=/run/secrets/password # optional but required for (1)
restart: unless-stopped
# optional but required for Docker secrets (1)
#secrets:
#password:
#file: ./password

@ -0,0 +1,14 @@
#Database
POSTGRES_USER=gitea
POSTGRES_PASSWORD=gitea
POSTGRES_DB=gitea
#Gitea
USER_UID=1000
USER_GID=1000
GITEA__database__DB_TYPE=postgres
GITEA__database__HOST=db:5432
GITEA__database__NAME=gitea
GITEA__database__USER=gitea
GITEA__database__PASSWD=gitea
GITEA__webhook__ALLOWED_HOST_LIST=*

@ -0,0 +1,33 @@
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.18.1
container_name: gitea
env_file: .env
restart: always
networks:
- gitea
volumes:
- ./config:/data/gitea/conf
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3003:3000"
- "222:22"
depends_on:
- db
db:
image: postgres:14
restart: always
env_file: .env
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data

@ -0,0 +1,18 @@
# Database
POSTGRES_USER=root # The PostgreSQL user (useful to connect to the database)
POSTGRES_PASSWORD=<changeme> # The PostgreSQL password (useful to connect to the database)
POSTGRES_DB=n8n # The PostgreSQL default database (automatically created at first launch)
#N8N
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=<default_login_password>
N8N_DIAGNOSTICS_ENABLED=false
N8N_HIRING_BANNER_ENABLED=false
N8N_HIDE_USAGE_PAGE=true
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=n8n-db-postgres
DB_POSTGRESDB_PASSWORD=<db_password>
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=24
GENERIC_TIMEZONE=America/Chicago

@ -0,0 +1,34 @@
version: "3"
services:
n8n-app:
image: matthijs166/n8n-websocket
container_name: n8n-app
env_file: .env
restart: always
depends_on:
- n8n-db-postgres
volumes:
- ./.n8n:/home/node/.n8n #Configuration Folder
- ./scripts:/scripts #Optional
- ./git/:/git #Optional
- backups:/mnt/backups #Optional
ports:
- "3334:5678"
n8n-db-postgres:
container_name: n8n-db-postgres
image: 'postgres:latest'
restart: always
env_file: .env
#ports:
# - 5432:5432
volumes:
- ./postgres-data/:/var/lib/postgresql/data/
volumes:
backups:
driver_opts:
type: "nfs"
o: "addr=10.0.10.10,nolock,soft,rw"
device: ":/mnt/General_Tank/DockerBinds/docker/backups"

@ -0,0 +1,14 @@
#NextCloud
PUID=1000
PGID=1000
TZ=America/Chicago
MYSQL_PASSWORD=<NEW_DB_PASSWORD>
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
MYSQL_HOST=nextcloud_db
#Database
MYSQL_ROOT_PASSWORD=<NEW_DB_PASSWORD>
MYSQL_PASSWORD=<NEW_DB_PASSWORD>
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud

@ -0,0 +1,32 @@
version: "3.2"
services:
nextcloud:
image: lscr.io/linuxserver/nextcloud:26.0.0
container_name: nextcloud_app
env_file: .env
volumes:
- ./appdata:/config
- nextcloud_data:/data #This is where most of the NextCloud app lives, including ALL user uploaded files
# I have mounted this to my NAS (a volume defined below called 'nextcloud_data') because the server wouldn't
# have enough space.
ports:
- 4433:443
restart: unless-stopped
links:
- nextcloud_db
nextcloud_db:
container_name: nextcloud_db
image: mariadb:10.7.8
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
volumes:
- ./mysql:/var/lib/mysql
env_file: .env
volumes:
nextcloud_data:
driver_opts:
type: "nfs"
o: "addr=10.0.10.10,nolock,soft,rw"
device: ":/mnt/General_Tank/DockerBinds/docker/nextcloud-hub-4"

@ -0,0 +1,10 @@
version: "3.5"
services:
portainer_ce:
image: portainer/portainer-ce
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/prod/compose/portainer/data:/data portainer/portainer-ce
ports:
- 9000:9000

@ -0,0 +1,4 @@
EDGE=1
EDGE_ID=<id>
EDGE_KEY=<key>
EDGE_INSECURE_POLL=1

@ -0,0 +1,14 @@
version: "3.5"
services:
portainer_edge_agent:
image: portainer/agent:2.14.2
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
- /:/host
- portainer_data:/data
env_file: .env
ports:
- 9001:9001
- 8000:8000

@ -0,0 +1,12 @@
# Database
POSTGRES_DB=wiki
POSTGRES_PASSWORD=wikijsrocks
POSTGRES_USER=wikijs
# Wiki
DB_TYPE=postgres
DB_HOST=wiki-db
DB_PORT=5432
DB_USER=wikijs
DB_PASS=wikijsrocks
DB_NAME=wiki

@ -0,0 +1,21 @@
version: "3"
services:
wiki-db:
image: postgres:11-alpine
container_name: wiki-db
env_file: .env
logging:
driver: "none"
restart: unless-stopped
volumes:
- ./db-data:/var/lib/postgresql/data
wiki-web:
image: ghcr.io/requarks/wiki:2
container_name: wiki-web
depends_on:
- wiki-db
env_file: .env
restart: unless-stopped
ports:
- "9900:3000"
Loading…
Cancel
Save