Fix: many small bugs, update gitea to use volumes

This commit is contained in:
mrjk 2022-08-22 22:09:45 -04:00
parent 07703c9ec8
commit 30ddd419a3
5 changed files with 179 additions and 18 deletions

View File

@ -79,6 +79,8 @@ local global_vars_default(runtime) =
assert std.isString(runtime.paasify_stack);
local app_ident = runtime.paasify_ns + runtime.paasify_sep + runtime.paasify_stack;
#local dir_prefix = './';
local dir_prefix = runtime.paasify_stack_dir + '/';
{
app_ident: app_ident,
@ -119,15 +121,22 @@ local global_vars_default(runtime) =
app_debug: 'false',
app_dir_root: './',
app_dir_db_data: './db_data', # Backup data
app_dir_db_conf: './db_conf', # Commitables files into git
app_dir_conf: './conf', # Commitables files into git
app_dir_data: './data', # Backup data
app_dir_logs: './logs', # Backup ?
app_dir_share: './share', # No backup
app_dir_tmp: './tmp', # Just a tmp pool dir
app_dir_secrets: './secrets', # Autogenerated secrets
app_dir_root: dir_prefix,
app_dir_db_data: dir_prefix + 'db_data', # Backup data
app_dir_db_conf: dir_prefix + 'db_conf', # Commitables files into git
app_dir_cache: dir_prefix + 'cache', # Cache files
app_dir_build: dir_prefix + 'build', # Build dir
app_dir_script: dir_prefix + 'build', # Dir for storing container scripts and helpers
app_dir_conf: dir_prefix + 'conf', # Commitables files into git
app_dir_backup: dir_prefix + 'backup', # Backup directory
app_dir_data: dir_prefix + 'data', # Backup data
app_dir_logs: dir_prefix + 'logs', # Backup ?
app_dir_share: dir_prefix + 'share', # No backup, data for apps
app_dir_tmp: dir_prefix + 'tmp', # Just a tmp pool dir
app_dir_secrets: dir_prefix + 'secrets', # Autogenerated secrets
app_docker_socket: '/var/run/docker.sock',
app_docker_conn: 'unix://var/run/docker.sock',
# TOFIX: Merging data, SHOULD BEIN OVERRIDE !!!
app_admin_login: 'admin',
@ -139,6 +148,9 @@ local global_vars_default(runtime) =
app_user_passwd: 'user',
# Generic networks
net_backup: runtime.paasify_ns + runtime.paasify_sep + 'backup', # For backup network
net_docker: runtime.paasify_ns + runtime.paasify_sep + 'docker', # For docker socket access
net_mail: runtime.paasify_ns + runtime.paasify_sep + 'mail',
net_vpn: runtime.paasify_ns + runtime.paasify_sep + 'vpn',
net_proxy: runtime.paasify_ns + runtime.paasify_sep + 'proxy',
net_ldap: runtime.paasify_ns + runtime.paasify_sep + 'ldap',

View File

@ -12,12 +12,47 @@ Paasify:
- v1: https://git.jeznet.org/mrjk-lab/paasify
- v2: WIP
## To implement
### Infra
https://netboot.xyz/docs
https://www.domoticz.com/ OR HomeAssistant !
ddclient
duckdns
smokeping
syslog-ng
https://raneto.com/
https://github.com/linuxserver/docker-healthchecks/
### Other
Muximux
deluge/transmission
snapdrop
emulatorjs
#### Side cars
side-mysql
side-prometheus
side-pgsql
side-wireshark
side-docker-sock (connectiva)
side-code-server # vscode online
https://github.com/linuxserver/docker-sqlitebrowser/
https://github.com/linuxserver/docker-doublecommander/
## Resources:
Some other external resources gathered from the web
#### Large Collections
- https://docs.linuxserver.io/general/awesome-lsio
- https://github.com/shawly/docker-templates Homelab tools
- https://github.com/Stacrypt/cryptodaemon Crypto deamons
- https://github.com/dabealu/docker Devops tools

View File

@ -12,7 +12,7 @@ services:
- "--config=/config/configuration.${APP_AUTHELIA_BACKEND:-ldap}.yml"
volumes:
- ./config:/config
- ./conf:/config
#networks:
# - default
labels:

View File

@ -17,13 +17,24 @@ services:
image: mariadb:10
restart: unless-stopped
volumes:
- $app_dir_db_data:/var/lib/mysql
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "${mysql_root_passwd:-gitea}"
MYSQL_DATABASE: "${mysql_user_db:-gitea}"
MYSQL_USER: "${mysql_user_login:-gitea}"
MYSQL_PASSWORD: "${mysql_user_passwd:-gitea}"
labels:
restic-compose-backup.mysql: 'true'
networks:
db:
volumes:
db_data:
driver: local
driver_opts:
type: none
o: bind
device: $app_dir_db_data

View File

@ -1,4 +1,4 @@
version: '3.6'
version: '3.9'
networks:
default:
@ -16,16 +16,119 @@ services:
- GITEA__server__DOMAIN=$app_fqdn
- GITEA__server__SSH_DOMAIN=$app_fqdn
- GITEA__server__ROOT_URL=https://$app_fqdn
labels:
restic-compose-backup.volumes: true
restic-compose-backup.volumes.include: "data_repos,data_ssh,data_var"
networks:
default:
volumes:
- $app_dir_data:/data:rw
#- $app_dir_data/repos:/data/git:rw
#- $app_dir_data/var:/data/gitea:rw
#- $app_dir_data/ssh:/data/ssh:rw
# V2 Multi
- data_var:/data/gitea:rw
- data_repos:/data/git:rw
- data_ssh:/data/ssh:rw
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
volumes:
data_repos:
driver: local
driver_opts:
type: none
o: bind
device: $app_dir_data/git
data_ssh:
driver: local
driver_opts:
type: none
o: bind
device: $app_dir_data/ssh
data_var:
driver: local
driver_opts:
type: none
o: bind
device: $app_dir_data/gitea
# V1 mono
#- data_gitea:/data/gitea
#- type: volume
# source: data_gitea
# target: /data/gitea
# #bind:
# # create_host_path: true
#- type: volume
# source: data_var
# target: /data/gitea
#- type: volume
# source: data_repos
# target: /data/git
#- type: volume
# source: data_ssh
# target: /data/ssh
#- /etc/timezone:/etc/timezone:ro
#- /etc/localtime:/etc/localtime:ro
# Example: https://stackoverflow.com/questions/49950326/how-to-create-docker-volume-device-host-path
# https://docs.docker.com/compose/compose-file/#volumes
#
#volumes:
# data_repos:
# data_ssh:
# data_var:
#data_gitea:
# driver: local
# driver_opts:
# type: none
# o: bind
# device: $app_dir_data/data_gitea
# Pre build cmd: All direcotries must exists for local volumes
# yq -r '.volumes | keys[] as $key| "mkdir -p " + .[$key].driver_opts.device ' docker-compose.run.yml
#
# mkdir -p /home/jez/volumes/data/prj/mrjk/POC/paasify3/examples/ex2/gitea/data/data_gitea
# yq -r '.volumes | keys[] as $key| "docker volume create -d " + .[$key].driver + " -o type=" + .[$key].driver_opts.o + " -o device=" + .[$key].driver_opts.device + " devbox_gitea_" + $key ' docker-compose.run.yml
# => docker volume create -d local -o type=bind -o device=./data/var devbox_gitea_data_gitea
# Broken
# yq -r '.volumes | keys[] as $key| "docker volume create -d " + .[$key].driver + " -o type=" + .[$key].driver_opts.o + " -o device=" + .[$key].driver_opts.device + " " + $key ' docker-compose.run.yml
# Volume prior init:
# for x in $(yq -r '.volumes[] | if .driver == "local" then .driver_opts.device else "titi" end' docker-compose.run.yml ); do mkdir -p "$x" ; done
# PREFIX=devbox_gitea for x in $(yq -r '.volumes[] | if .driver == "local" then .driver_opts.device else "titi" end' docker-compose.run.yml ); do mkdir -p "$x" ; done
#
#
#
# --mount 'type=volume,src=<VOLUME-NAME>,dst=<CONTAINER-PATH>,volume-driver=local,volume-opt=type=nfs,volume-opt=device=<nfs-server>:<nfs-path>,"volume-opt=o=addr=<nfs-address>,vers=4,soft,timeo=180,bg,tcp,rw"'
#
# docker volume create -d local -o type=bind -o "device=$x" my-vol
# docker volume create -d local -o type=bind -o "device=$x" my-vol