Compare commits
4 Commits
3be5d50647
...
5134e0622b
Author | SHA1 | Date | |
---|---|---|---|
5134e0622b | |||
265498926f | |||
76b5d077ae | |||
a3ba7b1dff |
19
doom.org
19
doom.org
@ -1411,6 +1411,18 @@ https://kitchingroup.cheme.cmu.edu/blog/2016/11/07/Better-equation-numbering-in-
|
|||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
** Org Media Note
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package! org-media-note
|
||||||
|
:hook (org-mode . org-media-note-setup-org-ref)
|
||||||
|
:bind (
|
||||||
|
("H-v" . org-media-note-hydra/body)) ;; Main entrance
|
||||||
|
:config
|
||||||
|
(setq org-media-note-screenshot-image-dir "~/Pictures/") ;; Folder to save screencast
|
||||||
|
(setq org-media-note-use-refcite-first t) ;; use videocite link instead of video link if possible
|
||||||
|
)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Org Auto Tangle
|
** Org Auto Tangle
|
||||||
#+begin_src emacs-lisp :tangle no
|
#+begin_src emacs-lisp :tangle no
|
||||||
(use-package! org-auto-tangle
|
(use-package! org-auto-tangle
|
||||||
@ -3322,6 +3334,13 @@ Choose account label to feed msmtp -a option based on From header in Message buf
|
|||||||
(package! vimrc-mode)
|
(package! vimrc-mode)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(package! org-media-note
|
||||||
|
:recipe (:host github :repo "yuchen-lea/org-media-note"))
|
||||||
|
(package! mpv)
|
||||||
|
(package! pretty-hydra)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
;; Automatic toggling of LaTeX fragments
|
;; Automatic toggling of LaTeX fragments
|
||||||
(package! org-fragtog)
|
(package! org-fragtog)
|
||||||
|
240
nas.org
240
nas.org
@ -271,7 +271,7 @@ You can use =latest= instead of the ID.
|
|||||||
:END:
|
:END:
|
||||||
|
|
||||||
#+begin_src yaml
|
#+begin_src yaml
|
||||||
version: "3.2"
|
version: "3.4"
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Networks
|
** Networks
|
||||||
@ -286,6 +286,16 @@ networks:
|
|||||||
driver: bridge
|
driver: bridge
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
** Logging
|
||||||
|
#+begin_src yaml
|
||||||
|
x-logging:
|
||||||
|
&default-logging
|
||||||
|
driver: "json-file"
|
||||||
|
options:
|
||||||
|
max-size: "200k"
|
||||||
|
max-file: "10"
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** =traefik= - Application proxy
|
** =traefik= - Application proxy
|
||||||
#+begin_src yaml
|
#+begin_src yaml
|
||||||
services:
|
services:
|
||||||
@ -296,33 +306,6 @@ services:
|
|||||||
container_name: traefik
|
container_name: traefik
|
||||||
image: traefik:2.2.1
|
image: traefik:2.2.1
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
command:
|
|
||||||
- --global.checkNewVersion=true
|
|
||||||
- --global.sendAnonymousUsage=false
|
|
||||||
- --entryPoints.http.address=:80
|
|
||||||
- --entryPoints.https.address=:443
|
|
||||||
- --entrypoints.https.forwardedHeaders.trustedIPs=173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/12,172.64.0.0/13,131.0.72.0/22
|
|
||||||
- --entryPoints.traefik.address=:8080
|
|
||||||
- --api=true
|
|
||||||
- --api.dashboard=true
|
|
||||||
- --log=true
|
|
||||||
- --log.level=ERROR # (Default: error) DEBUG, INFO, WARN, ERROR, FATAL, PANIC
|
|
||||||
- --accessLog=true
|
|
||||||
- --accessLog.filePath=/var/log/access.log
|
|
||||||
- --accessLog.filters.statusCodes=400-499
|
|
||||||
- --providers.docker=true
|
|
||||||
- --providers.docker.endpoint=unix:///var/run/docker.sock
|
|
||||||
- --providers.docker.defaultrule=Host(`{{ index .Labels "com.docker.compose.service" }}.$DOMAINNAME`)
|
|
||||||
- --providers.docker.exposedByDefault=false
|
|
||||||
- --providers.docker.network=t2_proxy
|
|
||||||
- --providers.docker.swarmMode=false
|
|
||||||
- --providers.file.directory=/rules
|
|
||||||
- --providers.file.watch=true
|
|
||||||
# - --certificatesResolvers.dns-cloudflare.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory # LetsEncrypt Staging Server - uncomment when testing
|
|
||||||
- --certificatesResolvers.dns-cloudflare.acme.email=$CLOUDFLARE_EMAIL
|
|
||||||
- --certificatesResolvers.dns-cloudflare.acme.storage=/acme.json
|
|
||||||
- --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.provider=cloudflare
|
|
||||||
- --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.resolvers=1.1.1.1:53,1.0.0.1:53
|
|
||||||
networks:
|
networks:
|
||||||
t2_proxy:
|
t2_proxy:
|
||||||
ipv4_address: 192.168.90.254 # You can specify a static IP
|
ipv4_address: 192.168.90.254 # You can specify a static IP
|
||||||
@ -336,6 +319,7 @@ services:
|
|||||||
- $CONFIGDIR/traefik2/rules:/rules
|
- $CONFIGDIR/traefik2/rules:/rules
|
||||||
- $CONFIGDIR/traefik2/acme/acme.json:/acme.json
|
- $CONFIGDIR/traefik2/acme/acme.json:/acme.json
|
||||||
- $CONFIGDIR/traefik2/shared:/shared
|
- $CONFIGDIR/traefik2/shared:/shared
|
||||||
|
- $CONFIGDIR/traefik2/traefik.yaml:/etc/traefik/traefik.yaml
|
||||||
- /var/log/traefik:/var/log
|
- /var/log/traefik:/var/log
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
environment:
|
environment:
|
||||||
@ -365,6 +349,55 @@ services:
|
|||||||
# - 'traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://login.$DOMAINNAME/'
|
# - 'traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://login.$DOMAINNAME/'
|
||||||
# - 'traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true'
|
# - 'traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true'
|
||||||
# - 'traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=Remote-User, Remote-Groups'
|
# - 'traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=Remote-User, Remote-Groups'
|
||||||
|
logging: *default-logging
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** =traefik.yaml=
|
||||||
|
#+begin_src yaml :tangle /ssh:thomas@grenoble:~/docker/config/traefik2/traefik.yaml
|
||||||
|
global:
|
||||||
|
checkNewVersion: true
|
||||||
|
sendAnonymousUsage: false
|
||||||
|
|
||||||
|
entryPoints:
|
||||||
|
traefik:
|
||||||
|
address: :8080
|
||||||
|
http:
|
||||||
|
address: :80
|
||||||
|
https:
|
||||||
|
address: :443
|
||||||
|
forwardedHeaders:
|
||||||
|
trustedIPs: 173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/12,172.64.0.0/13,131.0.72.0/22
|
||||||
|
|
||||||
|
api:
|
||||||
|
dashboard: true
|
||||||
|
|
||||||
|
log:
|
||||||
|
level: ERROR
|
||||||
|
|
||||||
|
accessLog:
|
||||||
|
filePath: /var/log/access.log
|
||||||
|
filters:
|
||||||
|
statusCodes: 400-499
|
||||||
|
|
||||||
|
providers:
|
||||||
|
docker:
|
||||||
|
endpoint: unix:///var/run/docker.sock
|
||||||
|
defaultrule: Host(`{{ index .Labels "com.docker.compose.service" }}.$DOMAINNAME`)
|
||||||
|
exposedByDefault: false
|
||||||
|
network: t2_proxy
|
||||||
|
swarmMode: false
|
||||||
|
file:
|
||||||
|
directory: /rules
|
||||||
|
watch: true
|
||||||
|
|
||||||
|
certificatesResolvers:
|
||||||
|
dns-cloudflare:
|
||||||
|
acme:
|
||||||
|
email: $CLOUDFLARE_EMAIL
|
||||||
|
storage: /acme.json
|
||||||
|
dnsChallenge:
|
||||||
|
provider: cloudflare
|
||||||
|
resolvers: 1.1.1.1:53,1.0.0.1:53
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =homer= - Home page
|
** =homer= - Home page
|
||||||
@ -388,6 +421,7 @@ services:
|
|||||||
- "traefik.http.routers.homer-rtr.tls=true"
|
- "traefik.http.routers.homer-rtr.tls=true"
|
||||||
- "traefik.http.routers.homer-rtr.service=homer-svc"
|
- "traefik.http.routers.homer-rtr.service=homer-svc"
|
||||||
- "traefik.http.services.homer-svc.loadbalancer.server.port=8080"
|
- "traefik.http.services.homer-svc.loadbalancer.server.port=8080"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** =config.yml=
|
*** =config.yml=
|
||||||
@ -523,38 +557,7 @@ services:
|
|||||||
- name: "OctoPrint"
|
- name: "OctoPrint"
|
||||||
logo: "/assets/tools/octoprint.png"
|
logo: "/assets/tools/octoprint.png"
|
||||||
subtitle: "3D-Printing"
|
subtitle: "3D-Printing"
|
||||||
url: "http://192.168.1.56/"
|
url: "https://octoprint.tdehaeze.xyz/"
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** =restic= - Automatic online backups
|
|
||||||
#+begin_src yaml
|
|
||||||
restic:
|
|
||||||
container_name: restic
|
|
||||||
image: mazzolino/restic
|
|
||||||
restart: "no"
|
|
||||||
networks:
|
|
||||||
- t2_proxy
|
|
||||||
environment:
|
|
||||||
- RUN_ON_STARTUP=true
|
|
||||||
- BACKUP_CRON=0 30 0 * * *
|
|
||||||
- RESTIC_REPOSITORY=rclone:mega:mega
|
|
||||||
- RESTIC_PASSWORD="$RESTIC_PASSWORD"
|
|
||||||
- RESTIC_BACKUP_SOURCES=/data
|
|
||||||
- RESTIC_FORGET_ARGS=--keep-daily 7 --keep-weekly 4 --keep-monthly 12
|
|
||||||
- UID=$PUID
|
|
||||||
- GID=$PGID
|
|
||||||
- TZ=$TZ
|
|
||||||
volumes:
|
|
||||||
- $CONFIGDIR/restic:/root/.config/rclone
|
|
||||||
- /srv/storage/Cloud/thesis:/data/thesis
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** =rclone.conf=
|
|
||||||
#+begin_src conf :tangle /ssh:thomas@grenoble:~/docker/config/restic/rclone.conf :noweb yes
|
|
||||||
[mega]
|
|
||||||
type = mega
|
|
||||||
user = dehaeze.thomas@gmail.com
|
|
||||||
pass = <<get-password(passname="nas/rclone_mega_pass")>>
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =snapraid= - Manage local backup with parity disk
|
** =snapraid= - Manage local backup with parity disk
|
||||||
@ -574,6 +577,7 @@ pass = <<get-password(passname="nas/rclone_mega_pass")>>
|
|||||||
- PUID=$PUID
|
- PUID=$PUID
|
||||||
- PGID=$PGID
|
- PGID=$PGID
|
||||||
- TZ=$TZ
|
- TZ=$TZ
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** =snapraid.conf=
|
*** =snapraid.conf=
|
||||||
@ -697,6 +701,7 @@ older-than = 10
|
|||||||
- "traefik.http.routers.portainer-rtr.service=portainer-svc"
|
- "traefik.http.routers.portainer-rtr.service=portainer-svc"
|
||||||
- "traefik.http.routers.portainer-rtr.middlewares=traefik-auth"
|
- "traefik.http.routers.portainer-rtr.middlewares=traefik-auth"
|
||||||
- "traefik.http.services.portainer-svc.loadbalancer.server.port=9000"
|
- "traefik.http.services.portainer-svc.loadbalancer.server.port=9000"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =wireguard= - VPN
|
** =wireguard= - VPN
|
||||||
@ -723,6 +728,7 @@ older-than = 10
|
|||||||
- /lib/modules:/lib/modules
|
- /lib/modules:/lib/modules
|
||||||
ports:
|
ports:
|
||||||
- 51820:51820/udp
|
- 51820:51820/udp
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =gitea= - Git server
|
** =gitea= - Git server
|
||||||
@ -752,6 +758,7 @@ older-than = 10
|
|||||||
- "traefik.http.routers.git-rtr.tls=true"
|
- "traefik.http.routers.git-rtr.tls=true"
|
||||||
- "traefik.http.routers.git-rtr.service=git-svc"
|
- "traefik.http.routers.git-rtr.service=git-svc"
|
||||||
- "traefik.http.services.git-svc.loadbalancer.server.port=3000"
|
- "traefik.http.services.git-svc.loadbalancer.server.port=3000"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src yaml
|
#+begin_src yaml
|
||||||
@ -796,6 +803,7 @@ older-than = 10
|
|||||||
- "traefik.http.routers.caddy-rtr.tls=true"
|
- "traefik.http.routers.caddy-rtr.tls=true"
|
||||||
- "traefik.http.routers.caddy-rtr.service=caddy-svc"
|
- "traefik.http.routers.caddy-rtr.service=caddy-svc"
|
||||||
- "traefik.http.services.caddy-svc.loadbalancer.server.port=2015"
|
- "traefik.http.services.caddy-svc.loadbalancer.server.port=2015"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** =Caddyfile=
|
*** =Caddyfile=
|
||||||
@ -836,6 +844,7 @@ older-than = 10
|
|||||||
- "traefik.http.routers.dotfiles-rtr.tls=true"
|
- "traefik.http.routers.dotfiles-rtr.tls=true"
|
||||||
- "traefik.http.routers.dotfiles-rtr.service=dotfiles-svc"
|
- "traefik.http.routers.dotfiles-rtr.service=dotfiles-svc"
|
||||||
- "traefik.http.services.dotfiles-svc.loadbalancer.server.port=2015"
|
- "traefik.http.services.dotfiles-svc.loadbalancer.server.port=2015"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** =Caddyfile=
|
*** =Caddyfile=
|
||||||
@ -869,6 +878,7 @@ older-than = 10
|
|||||||
- "traefik.http.routers.hugo-rtr.tls=true"
|
- "traefik.http.routers.hugo-rtr.tls=true"
|
||||||
- "traefik.http.routers.hugo-rtr.service=hugo-svc"
|
- "traefik.http.routers.hugo-rtr.service=hugo-svc"
|
||||||
- "traefik.http.services.hugo-svc.loadbalancer.server.port=2015"
|
- "traefik.http.services.hugo-svc.loadbalancer.server.port=2015"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =syncthing= - File Synchronization
|
** =syncthing= - File Synchronization
|
||||||
@ -903,6 +913,7 @@ older-than = 10
|
|||||||
- "traefik.http.routers.syncthing-rtr.service=syncthing-svc"
|
- "traefik.http.routers.syncthing-rtr.service=syncthing-svc"
|
||||||
- "traefik.http.routers.syncthing-rtr.middlewares=traefik-auth"
|
- "traefik.http.routers.syncthing-rtr.middlewares=traefik-auth"
|
||||||
- "traefik.http.services.syncthing-svc.loadbalancer.server.port=8384"
|
- "traefik.http.services.syncthing-svc.loadbalancer.server.port=8384"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =miniflux= - RSS reader
|
** =miniflux= - RSS reader
|
||||||
@ -931,7 +942,10 @@ older-than = 10
|
|||||||
# - 'traefik.http.routers.miniflux-rtr.middlewares=authelia@docker'
|
# - 'traefik.http.routers.miniflux-rtr.middlewares=authelia@docker'
|
||||||
- "traefik.http.routers.miniflux-rtr.service=miniflux-svc"
|
- "traefik.http.routers.miniflux-rtr.service=miniflux-svc"
|
||||||
- "traefik.http.services.miniflux-svc.loadbalancer.server.port=8080"
|
- "traefik.http.services.miniflux-svc.loadbalancer.server.port=8080"
|
||||||
|
logging: *default-logging
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src yaml
|
||||||
miniflux_db:
|
miniflux_db:
|
||||||
container_name: miniflux_db
|
container_name: miniflux_db
|
||||||
image: postgres:12
|
image: postgres:12
|
||||||
@ -943,6 +957,7 @@ older-than = 10
|
|||||||
- POSTGRES_PASSWORD=$MINIFLUX_POSTGRES_PASSWORD
|
- POSTGRES_PASSWORD=$MINIFLUX_POSTGRES_PASSWORD
|
||||||
volumes:
|
volumes:
|
||||||
- $CONFIGDIR/miniflux_db:/var/lib/postgresql/data
|
- $CONFIGDIR/miniflux_db:/var/lib/postgresql/data
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =homeassistant= - Home Automation
|
** =homeassistant= - Home Automation
|
||||||
@ -980,6 +995,7 @@ older-than = 10
|
|||||||
- "traefik.http.routers.homeassistant-rtr.service=homeassistant-svc"
|
- "traefik.http.routers.homeassistant-rtr.service=homeassistant-svc"
|
||||||
- "traefik.http.services.homeassistant-svc.loadbalancer.servers.url=http://172.17.0.1:8123"
|
- "traefik.http.services.homeassistant-svc.loadbalancer.servers.url=http://172.17.0.1:8123"
|
||||||
#- "traefik.http.services.homeassistant-svc.loadbalancer.server.port=8123"
|
#- "traefik.http.services.homeassistant-svc.loadbalancer.server.port=8123"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =jellyfin= - Media server
|
** =jellyfin= - Media server
|
||||||
@ -1008,6 +1024,7 @@ older-than = 10
|
|||||||
- "traefik.http.routers.jellyfin-rtr.tls=true"
|
- "traefik.http.routers.jellyfin-rtr.tls=true"
|
||||||
- "traefik.http.routers.jellyfin-rtr.service=jellyfin-svc"
|
- "traefik.http.routers.jellyfin-rtr.service=jellyfin-svc"
|
||||||
- "traefik.http.services.jellyfin-svc.loadbalancer.server.port=8096"
|
- "traefik.http.services.jellyfin-svc.loadbalancer.server.port=8096"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =filebrowser= - Web file browser
|
** =filebrowser= - Web file browser
|
||||||
@ -1034,6 +1051,7 @@ older-than = 10
|
|||||||
- "traefik.http.routers.filebrowser-rtr.tls=true"
|
- "traefik.http.routers.filebrowser-rtr.tls=true"
|
||||||
- "traefik.http.routers.filebrowser-rtr.service=filebrowser-svc"
|
- "traefik.http.routers.filebrowser-rtr.service=filebrowser-svc"
|
||||||
- "traefik.http.services.filebrowser-svc.loadbalancer.server.port=80"
|
- "traefik.http.services.filebrowser-svc.loadbalancer.server.port=80"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** =.filebrowser.json=
|
*** =.filebrowser.json=
|
||||||
@ -1078,6 +1096,7 @@ older-than = 10
|
|||||||
- /dev/nvme0n1:/dev/nvme0n1
|
- /dev/nvme0n1:/dev/nvme0n1
|
||||||
ports:
|
ports:
|
||||||
- 8089:8080
|
- 8089:8080
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =guacamole= - Remote connection
|
** =guacamole= - Remote connection
|
||||||
@ -1102,6 +1121,7 @@ older-than = 10
|
|||||||
- "traefik.http.routers.guacamole-rtr.tls=true"
|
- "traefik.http.routers.guacamole-rtr.tls=true"
|
||||||
- "traefik.http.routers.guacamole-rtr.service=guacamole-svc"
|
- "traefik.http.routers.guacamole-rtr.service=guacamole-svc"
|
||||||
- "traefik.http.services.guacamole-svc.loadbalancer.server.port=8080"
|
- "traefik.http.services.guacamole-svc.loadbalancer.server.port=8080"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =transmission= - Torrent server
|
** =transmission= - Torrent server
|
||||||
@ -1144,6 +1164,7 @@ older-than = 10
|
|||||||
- "traefik.http.routers.transmission-rtr.service=transmission-svc"
|
- "traefik.http.routers.transmission-rtr.service=transmission-svc"
|
||||||
- "traefik.http.routers.transmission-rtr.middlewares=traefik-auth"
|
- "traefik.http.routers.transmission-rtr.middlewares=traefik-auth"
|
||||||
- "traefik.http.services.transmission-svc.loadbalancer.server.port=9091"
|
- "traefik.http.services.transmission-svc.loadbalancer.server.port=9091"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =aria2= - Download daemon
|
** =aria2= - Download daemon
|
||||||
@ -1163,6 +1184,7 @@ older-than = 10
|
|||||||
- /srv/storage/Downloads:/downloads
|
- /srv/storage/Downloads:/downloads
|
||||||
ports:
|
ports:
|
||||||
- 6800:6800
|
- 6800:6800
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** =aria2.conf=
|
*** =aria2.conf=
|
||||||
@ -1210,6 +1232,7 @@ split=16
|
|||||||
- "traefik.http.routers.aria2-rtr.tls=false"
|
- "traefik.http.routers.aria2-rtr.tls=false"
|
||||||
- "traefik.http.routers.aria2-rtr.service=aria2-svc"
|
- "traefik.http.routers.aria2-rtr.service=aria2-svc"
|
||||||
- "traefik.http.services.aria2-svc.loadbalancer.server.port=6880"
|
- "traefik.http.services.aria2-svc.loadbalancer.server.port=6880"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** =deemix= - Music Download
|
** =deemix= - Music Download
|
||||||
@ -1236,6 +1259,7 @@ split=16
|
|||||||
- "traefik.http.routers.deemix-rtr.service=deemix-svc"
|
- "traefik.http.routers.deemix-rtr.service=deemix-svc"
|
||||||
# - "traefik.http.routers.deemix-rtr.middlewares=traefik-auth"
|
# - "traefik.http.routers.deemix-rtr.middlewares=traefik-auth"
|
||||||
- "traefik.http.services.deemix-svc.loadbalancer.server.port=6595"
|
- "traefik.http.services.deemix-svc.loadbalancer.server.port=6595"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** =.arl=
|
*** =.arl=
|
||||||
@ -1264,9 +1288,101 @@ split=16
|
|||||||
- "traefik.http.routers.linkding-rtr.tls=true"
|
- "traefik.http.routers.linkding-rtr.tls=true"
|
||||||
- "traefik.http.routers.linkding-rtr.service=linkding-svc"
|
- "traefik.http.routers.linkding-rtr.service=linkding-svc"
|
||||||
- "traefik.http.services.linkding-svc.loadbalancer.server.port=9090"
|
- "traefik.http.services.linkding-svc.loadbalancer.server.port=9090"
|
||||||
|
logging: *default-logging
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** =restic= - Automatic online backups
|
||||||
|
#+begin_src yaml
|
||||||
|
restic:
|
||||||
|
container_name: restic
|
||||||
|
image: mazzolino/restic
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- t2_proxy
|
||||||
|
environment:
|
||||||
|
- BACKUP_CRON=0 30 0 * * *
|
||||||
|
- RESTIC_REPOSITORY=b2:tdehaeze:/restic
|
||||||
|
- RESTIC_PASSWORD=$RESTIC_PASSWORD
|
||||||
|
- RESTIC_BACKUP_SOURCES=/source
|
||||||
|
- RESTIC_FORGET_ARGS=--keep-daily 7 --keep-weekly 4 --keep-monthly 12
|
||||||
|
- RESTIC_BACKUP_ARGS=--exclude-file /exclude.txt
|
||||||
|
- B2_ACCOUNT_ID=$RESTIC_B2_ACCOUNT_ID
|
||||||
|
- B2_ACCOUNT_KEY=$RESTIC_B2_ACCOUNT_KEY
|
||||||
|
- UID=$PUID
|
||||||
|
- GID=$PGID
|
||||||
|
- TZ=$TZ
|
||||||
|
volumes:
|
||||||
|
- $CONFIGDIR/restic/exclude.txt:/exclude.txt:ro
|
||||||
|
- /srv/storage/Cloud/thesis:/source/Cloud/thesis:ro
|
||||||
|
- /home/thomas/docker:/source/docker:ro
|
||||||
|
logging: *default-logging
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** =exclude.txt= - Exclude files
|
||||||
|
|
||||||
|
#+begin_src conf :tangle /ssh:thomas@grenoble:~/docker/config/restic/exclude.txt
|
||||||
|
*.db
|
||||||
|
*.log
|
||||||
|
*.log.*
|
||||||
|
/source/docker/config/gitea/git/
|
||||||
|
/source/docker/config/guacamole/
|
||||||
|
/source/docker/config/guacamole_db/
|
||||||
|
/source/docker/config/mariadb/
|
||||||
|
/source/docker/config/miniflux_db/
|
||||||
|
/source/docker/config/jellyfin/data/
|
||||||
|
/source/docker/config/dotfiles/www/
|
||||||
|
/source/docker/config/web/www/
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** =octoprint= - Web interface for 3D printing
|
||||||
|
#+begin_src yaml
|
||||||
|
octoprint:
|
||||||
|
container_name: octoprint
|
||||||
|
image: octoprint/octoprint
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- t2_proxy
|
||||||
|
environment:
|
||||||
|
- UID=$PUID
|
||||||
|
- GID=$PGID
|
||||||
|
- TZ=$TZ
|
||||||
|
volumes:
|
||||||
|
- $CONFIGDIR/octoprint:/octoprint
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.octoprint-rtr.entrypoints=https"
|
||||||
|
- "traefik.http.routers.octoprint-rtr.rule=Host(`octoprint.$DOMAINNAME`)"
|
||||||
|
- "traefik.http.routers.octoprint-rtr.tls=true"
|
||||||
|
- "traefik.http.routers.octoprint-rtr.service=octoprint-svc"
|
||||||
|
- "traefik.http.routers.octoprint-rtr.middlewares=traefik-auth"
|
||||||
|
- "traefik.http.services.octoprint-svc.loadbalancer.server.port=80"
|
||||||
|
logging: *default-logging
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
* Docker-Compose OLD :noexport:
|
* Docker-Compose OLD :noexport:
|
||||||
|
** =duplicity= - Bookmark manager
|
||||||
|
#+begin_src yaml
|
||||||
|
duplicity:
|
||||||
|
container_name: duplicity
|
||||||
|
image: tecnativa/duplicity
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- t2_proxy
|
||||||
|
environment:
|
||||||
|
- TZ=$TZ
|
||||||
|
- DST=megav2://mega@mega.nz/backup
|
||||||
|
volumes:
|
||||||
|
- $CONFIGDIR/duplicity/.megav2rc:/root/.megav2rc
|
||||||
|
- /srv/storage/Cloud/thesis:/mnt/backup/src/thesis:ro
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** =.megarc=
|
||||||
|
#+begin_src conf :tangle /ssh:thomas@grenoble:~/docker/config/duplicity/.megav2rc :noweb yes
|
||||||
|
[Login]
|
||||||
|
user = dehaeze.thomas@gmail.com
|
||||||
|
pass = <<get-password(passname="nas/duplicity_mega")>>
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Transfer.sh
|
** Transfer.sh
|
||||||
#+begin_src yaml
|
#+begin_src yaml
|
||||||
transfer:
|
transfer:
|
||||||
@ -1974,7 +2090,7 @@ split=16
|
|||||||
|
|
||||||
* =.env= - Variable used for Docker Compose
|
* =.env= - Variable used for Docker Compose
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:header-args: :tangle /ssh:thomas@grenoble:~/docker/.env.test
|
:header-args: :tangle /ssh:thomas@grenoble:~/docker/.env
|
||||||
:header-args+: :comments none :mkdirp yes :noweb yes
|
:header-args+: :comments none :mkdirp yes :noweb yes
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
@ -1999,6 +2115,8 @@ MINIFLUX_POSTGRES_PASSWORD=<<get-password(passname="nas/miniflux_postgres_pass")
|
|||||||
|
|
||||||
#+begin_src conf
|
#+begin_src conf
|
||||||
RESTIC_PASSWORD=<<get-password(passname="nas/restic_pass")>>
|
RESTIC_PASSWORD=<<get-password(passname="nas/restic_pass")>>
|
||||||
|
RESTIC_B2_ACCOUNT_ID=<<get-password(passname="nas/restic_B2_id")>>
|
||||||
|
RESTIC_B2_ACCOUNT_KEY=<<get-password(passname="nas/restic_B2_key")>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src conf
|
#+begin_src conf
|
||||||
|
1
vim.org
1
vim.org
@ -551,6 +551,7 @@ let g:which_key_map_local = {}
|
|||||||
** Mails
|
** Mails
|
||||||
#+begin_src vimrc
|
#+begin_src vimrc
|
||||||
autocmd FileType mail set spell spelllang=en_us,fr
|
autocmd FileType mail set spell spelllang=en_us,fr
|
||||||
|
autocmd FileType mail set textwidth=0
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** MarkDown
|
** MarkDown
|
||||||
|
Loading…
Reference in New Issue
Block a user