initial commit
This commit is contained in:
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
.env
|
||||
.DS_Store
|
||||
gitea/data
|
||||
nextcloud/config
|
||||
nextcloud/data
|
||||
nextcloud/custom_apps
|
||||
nextcloud/lib
|
||||
nextcloud/custom-config
|
||||
nextcloud/nextcloud
|
||||
47
freshrss/docker-compose.yml
Normal file
47
freshrss/docker-compose.yml
Normal file
@@ -0,0 +1,47 @@
|
||||
services:
|
||||
freshrss:
|
||||
image: freshrss/freshrss:latest
|
||||
#user: "501:20"
|
||||
container_name: freshrss
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
- VIRTUAL_HOST=${VIRTUAL_HOST}
|
||||
- LETSENCRYPT_HOST=${LETSENCRYPT_HOST}
|
||||
- LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
|
||||
- CRON_MIN=${CRON_MIN}
|
||||
volumes:
|
||||
- freshrss_data:/var/www/FreshRSS/data
|
||||
- freshrss_extensions:/var/www/FreshRSS/extensions
|
||||
# read_only: true
|
||||
# tmpfs:
|
||||
# - /tmp
|
||||
# - /var/www/FreshRSS/Docker
|
||||
# - /var/spool/cron
|
||||
networks:
|
||||
- proxy-tier
|
||||
depends_on:
|
||||
- freshrss-db
|
||||
|
||||
freshrss-db:
|
||||
image: mariadb:10.11
|
||||
container_name: freshrss-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
volumes:
|
||||
- freshrss_db:/var/lib/mysql
|
||||
networks:
|
||||
- proxy-tier
|
||||
|
||||
volumes:
|
||||
freshrss_data:
|
||||
freshrss_extensions:
|
||||
freshrss_db:
|
||||
|
||||
networks:
|
||||
proxy-tier:
|
||||
external: true
|
||||
59
gitea/docker-compose.yml
Normal file
59
gitea/docker-compose.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
services:
|
||||
db:
|
||||
image: mariadb:11
|
||||
restart: unless-stopped
|
||||
hostname: ${GITEA_DB_HOST}
|
||||
container_name: gitea-db
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
networks:
|
||||
- proxy-tier
|
||||
|
||||
app:
|
||||
image: gitea/gitea:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "2222:22"
|
||||
environment:
|
||||
- VIRTUAL_HOST=${VIRTUAL_HOST}
|
||||
- VIRTUAL_PORT=3000
|
||||
- LETSENCRYPT_HOST=${LETSENCRYPT_HOST}
|
||||
- LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
|
||||
- DB_TYPE=mysql
|
||||
- DB_HOST=${GITEA_DB_HOST}:3306
|
||||
- DB_NAME=${MYSQL_DATABASE}
|
||||
- DB_USER=${MYSQL_USER}
|
||||
- DB_PASSWD=${MYSQL_PASSWORD}
|
||||
volumes:
|
||||
- ./data:/data
|
||||
depends_on:
|
||||
- db
|
||||
networks:
|
||||
- proxy-tier
|
||||
|
||||
actions-runner:
|
||||
image: gitea/act_runner:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- GITEA_INSTANCE_URL=https://${VIRTUAL_HOST}
|
||||
- GITEA_RUNNER_REGISTRATION_TOKEN=${RUNNER_TOKEN}
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock # 👈 give runner access to host Docker
|
||||
networks:
|
||||
- proxy-tier
|
||||
depends_on:
|
||||
- app
|
||||
privileged: true # often needed for job containers
|
||||
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
|
||||
networks:
|
||||
proxy-tier:
|
||||
external: true
|
||||
64
nextcloud/docker-compose.yml
Normal file
64
nextcloud/docker-compose.yml
Normal file
@@ -0,0 +1,64 @@
|
||||
services:
|
||||
db:
|
||||
image: mariadb:11
|
||||
hostname: nextcloud-db
|
||||
container_name: nextcloud-db
|
||||
restart: unless-stopped
|
||||
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
networks:
|
||||
- proxy-tier
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- proxy-tier
|
||||
app:
|
||||
image: nextcloud:latest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- VIRTUAL_HOST=${VIRTUAL_HOST}
|
||||
- LETSENCRYPT_HOST=${LETSENCRYPT_HOST}
|
||||
- LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE}
|
||||
- MYSQL_USER=${MYSQL_USER}
|
||||
- MYSQL_HOST=db
|
||||
- REDIS_HOST=redis
|
||||
- PHP_UPLOAD_LIMIT=16G
|
||||
- PHP_MEMORY_LIMIT=1024M
|
||||
- CLIENT_MAX_BODY_SIZE=0
|
||||
volumes:
|
||||
- ./config:/var/www/html/config
|
||||
- ./custom_apps:/var/www/html/custom_apps
|
||||
- ./data:/var/www/html/data
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
networks:
|
||||
- proxy-tier
|
||||
entrypoint: >
|
||||
sh -c "/entrypoint.sh apache2-foreground &
|
||||
sleep 20 &&
|
||||
php occ config:system:set trusted_domains 0 --value=${VIRTUAL_HOST} &&
|
||||
php occ config:system:set trusted_proxies 0 --value=nginx-proxy &&
|
||||
php occ config:system:set overwrite.cli.url --value=https://${VIRTUAL_HOST} &&
|
||||
php occ config:system:set overwriteprotocol --value=https &&
|
||||
php occ config:system:set memcache.local --value='\\OC\\Memcache\\APCu' &&
|
||||
php occ config:system:set memcache.locking --value='\\OC\\Memcache\\Redis' &&
|
||||
php occ config:system:set redis host --value=redis
|
||||
"
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
|
||||
networks:
|
||||
proxy-tier:
|
||||
external: true
|
||||
51
proxy/docker-compose.yml
Normal file
51
proxy/docker-compose.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
version: '3.9'
|
||||
|
||||
services:
|
||||
nginx-proxy:
|
||||
image: jwilder/nginx-proxy:alpine
|
||||
labels:
|
||||
- com.github.nginx-proxy.nginx
|
||||
container_name: nginx-proxy
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- certs:/etc/nginx/certs
|
||||
- vhost:/etc/nginx/vhost.d
|
||||
- html:/usr/share/nginx/html
|
||||
- ./vhost.d:/etc/nginx/vhost.d:ro
|
||||
- /var/run/docker.sock:/tmp/docker.sock:ro
|
||||
networks:
|
||||
- proxy-tier
|
||||
|
||||
letsencrypt:
|
||||
image: nginxproxy/acme-companion
|
||||
container_name: nginx-proxy-acme
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- NGINX_PROXY_CONTAINER=nginx-prox
|
||||
#- ACME_CA_URI=https://acme-staging-v02.api.letsencrypt.org/directory
|
||||
- DEFAULT_EMAIL=${LETSENCRYPT_EMAIL}
|
||||
volumes_from:
|
||||
- nginx-proxy
|
||||
volumes:
|
||||
- acme:/etc/acme.sh
|
||||
- certs:/etc/nginx/certs
|
||||
- vhost:/etc/nginx/vhost.d
|
||||
- html:/usr/share/nginx/html
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
depends_on:
|
||||
- nginx-proxy
|
||||
networks:
|
||||
- proxy-tier
|
||||
|
||||
volumes:
|
||||
certs:
|
||||
vhost:
|
||||
html:
|
||||
acme:
|
||||
|
||||
networks:
|
||||
proxy-tier:
|
||||
external: true
|
||||
2
proxy/vhost.d/default
Normal file
2
proxy/vhost.d/default
Normal file
@@ -0,0 +1,2 @@
|
||||
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
|
||||
client_max_body_size 0;
|
||||
Reference in New Issue
Block a user