diff --git a/config-root.yaml b/config-root.yaml index 3346e1dd..714389bd 100644 --- a/config-root.yaml +++ b/config-root.yaml @@ -162,8 +162,12 @@ profiles: Gondor: include: - Locale + - Pacman dotfiles: - f_sshd_config localhost: include: - Locale + Edoras: + include: + - Pacman diff --git a/config.yaml b/config.yaml index 5811f1ef..317ddafc 100644 --- a/config.yaml +++ b/config.yaml @@ -235,9 +235,22 @@ profiles: - terminal - Pacman mko-laptop: - include: - - terminal - AnittaPC: + dotfiles: + - f_nvimpager + - f_hushlogin + - f_ripgrep_ignore + - f_ranger_commands.py + - f_rtv.cfg + - f_mailcap + - d_zsh + - f_zshrc + - f_tmux.conf + - f_ranger.conf + - d_nvim_config + - f_init.vim + - f_coc-settings.json + - f_alacritty.yml + Edoras: include: - terminal - Pacman diff --git a/docker/freshrss/.gitignore b/docker/freshrss/.gitignore new file mode 100644 index 00000000..4c49bd78 --- /dev/null +++ b/docker/freshrss/.gitignore @@ -0,0 +1 @@ +.env diff --git a/docker/freshrss/docker-compose.yml b/docker/freshrss/docker-compose.yml index aaf1286e..7498ace6 100644 --- a/docker/freshrss/docker-compose.yml +++ b/docker/freshrss/docker-compose.yml @@ -6,7 +6,7 @@ services: restart: unless-stopped networks: - freshrss - - mariadb + - postgres - proxy ports: - 8088:80 @@ -14,8 +14,10 @@ services: - PUID=1000 - PGID=985 - TZ=Europe/Helsinki + depends_on: + - spotifeed volumes: - - /docker/freshrss:/config + - /docker/freshrss/freshrss:/config - /etc/localtime:/etc/localtime:ro labels: - "traefik.enable=true" @@ -33,10 +35,46 @@ services: - "traefik.docker.network=proxy" - "traefik.http.services.freshrss.loadbalancer.server.port=80" + spotifeed: + build: ./spotifeed + image: spotifeed + container_name: spotifeed + ports: + - 8083:8083 + restart: unless-stopped + networks: + - freshrss + + bibliogram: + image: cloudrac3r/bibliogram + container_name: bibliogram + restart: unless-stopped + volumes: + - /docker/freshrss/bibliogram/db:/app/db + - /docker/freshrss/bibliogram/config.js:/app/config.js + networks: + - freshrss + - proxy + labels: + - "traefik.enable=true" + + - "traefik.http.routers.bibliogram-redirect.entrypoints=http" + - "traefik.http.routers.bibliogram-redirect.rule=Host(`bibliogram.korhonen.cc`)" + - "traefik.http.middlewares.http2https.redirectscheme.scheme=https" + - "traefik.http.routers.bibliogram-redirect.middlewares=http2https" + + - "traefik.http.routers.bibliogram.entrypoints=https" + - "traefik.http.routers.bibliogram.rule=Host(`bibliogram.korhonen.cc`)" + - "traefik.http.routers.bibliogram.tls=true" + - "traefik.http.routers.bibliogram.tls.certresolver=http" + - "traefik.http.routers.bibliogram.service=bibliogram" + - "traefik.docker.network=proxy" + - "traefik.http.services.bibliogram.loadbalancer.server.port=10407" + networks: freshrss: external: false - mariadb: + postgres: external: true proxy: external: true diff --git a/docker/freshrss/spotifeed/Dockerfile b/docker/freshrss/spotifeed/Dockerfile new file mode 100644 index 00000000..63c1604d --- /dev/null +++ b/docker/freshrss/spotifeed/Dockerfile @@ -0,0 +1,9 @@ +FROM ruby:2.7.2 +RUN git clone https://github.com/timdorr/spotifeed +WORKDIR /spotifeed +RUN bundle install +EXPOSE 8083 +RUN apt-get update +RUN apt-get upgrade +RUN apt-get install redis-server -y +CMD puma -p 8083 & redis-server diff --git a/docker/gitea/docker-compose.yaml b/docker/gitea/docker-compose.yaml index 4fafc49e..b633d3e7 100644 --- a/docker/gitea/docker-compose.yaml +++ b/docker/gitea/docker-compose.yaml @@ -8,14 +8,9 @@ services: - TZ=Europe/Helsinki - USER_UID=1000 - USER_GID=1000 - - DB_TYPE=mysql - - DB_HOST=mariadb:3306 - - DB_NAME=gitea - - DB_USER=gitea - - DB_PASSWD=${MYSQL_PASS} restart: unless-stopped networks: - - mariadb + - postgres - proxy ports: - "3000:3000" @@ -40,7 +35,7 @@ services: - "traefik.http.services.gitea.loadbalancer.server.port=3000" networks: - mariadb: + postgres: external: true proxy: external: true diff --git a/docker/homeautomation/docker-compose.yml b/docker/homeautomation/docker-compose.yml index d339b160..ebcf1206 100644 --- a/docker/homeautomation/docker-compose.yml +++ b/docker/homeautomation/docker-compose.yml @@ -13,7 +13,7 @@ services: restart: unless-stopped networks: - homeautomation - - mariadb + - postgres - proxy ports: - "8123:8123" @@ -133,11 +133,11 @@ services: volumes: - /docker/homeautomation/gotify:/app/data environment: - - GOTIFY_DATABASE_DIALECT=mysql - - GOTIFY_DATABASE_CONNECTION=gotify:gotify@tcp(mariadb:3306)/gotify?charset=utf8&parseTime=True&loc=Local + - GOTIFY_DATABASE_DIALECT=postgres + - GOTIFY_DATABASE_CONNECTION="host=postgres port=5432 user=gotify dbname=gotify password=${GOTIFY_PGPASS} sslmode=disable" networks: - proxy - - mariadb + - postgres restart: unless-stopped labels: - "traefik.enable=true" @@ -158,7 +158,7 @@ services: networks: homeautomation: external: false - mariadb: + postgres: external: true proxy: external: true diff --git a/docker/index.korhonen.cc/docker-compose.yaml b/docker/index.korhonen.cc/docker-compose.yaml new file mode 100644 index 00000000..16ded23e --- /dev/null +++ b/docker/index.korhonen.cc/docker-compose.yaml @@ -0,0 +1,33 @@ +version: "3" + +services: + nginx: + image: fraoustin/fancyindex + container_name: index.korhonen.cc + environment: + - DISABLE_AUTH=true + - CONTAINER_TIMEZONE="Europe/Helsinki" + volumes: + - /docker/index.korhonen.cc:/share + networks: + - proxy + restart: unless-stopped + labels: + - "traefik.enable=true" + + - "traefik.http.routers.index-redirect.entrypoints=http" + - "traefik.http.routers.index-redirect.rule=Host(`index.korhonen.cc`)" + - "traefik.http.middlewares.http2https.redirectscheme.scheme=https" + - "traefik.http.routers.index-redirect.middlewares=http2https" + + - "traefik.http.routers.index.entrypoints=https" + - "traefik.http.routers.index.rule=Host(`index.korhonen.cc`)" + - "traefik.http.routers.index.tls=true" + - "traefik.http.routers.index.tls.certresolver=http" + - "traefik.http.routers.index.service=index" + - "traefik.docker.network=proxy" + - "traefik.http.services.index.loadbalancer.server.port=80" + +networks: + proxy: + external: true diff --git a/docker/marko.korhonen.cc/docker-compose.yaml b/docker/marko.korhonen.cc/docker-compose.yaml deleted file mode 100644 index 522dbc17..00000000 --- a/docker/marko.korhonen.cc/docker-compose.yaml +++ /dev/null @@ -1,30 +0,0 @@ -version: "3" - -services: - site: - image: nginx:alpine - container_name: marko.korhonen.cc - volumes: - - /docker/marko.korhonen.cc:/usr/share/nginx/html:ro - networks: - - proxy - restart: unless-stopped - labels: - - "traefik.enable=true" - - - "traefik.http.routers.marko-redirect.entrypoints=http" - - "traefik.http.routers.marko-redirect.rule=Host(`marko.korhonen.cc`)" - - "traefik.http.middlewares.http2https.redirectscheme.scheme=https" - - "traefik.http.routers.marko-redirect.middlewares=http2https" - - - "traefik.http.routers.marko.entrypoints=https" - - "traefik.http.routers.marko.rule=Host(`marko.korhonen.cc`)" - - "traefik.http.routers.marko.tls=true" - - "traefik.http.routers.marko.tls.certresolver=http" - - "traefik.http.routers.marko.service=marko" - - "traefik.docker.network=proxy" - - "traefik.http.services.marko.loadbalancer.server.port=80" - -networks: - proxy: - external: true diff --git a/docker/nextcloud/docker-compose.yml b/docker/nextcloud/docker-compose.yml index e424267e..50275831 100644 --- a/docker/nextcloud/docker-compose.yml +++ b/docker/nextcloud/docker-compose.yml @@ -9,7 +9,7 @@ services: - "1869:80" networks: - nextcloud - - mariadb + - postgres - proxy volumes: - /docker/nextcloud:/var/www/html @@ -19,7 +19,6 @@ services: - /etc/localtime:/etc/localtime:ro environment: - TZ=Europe/Helsinki - - MYSQL_HOST=mariadb-nextcloud - REDIS_HOST=redis - REDIS_HOST_PASSWORD=123 depends_on: @@ -61,7 +60,7 @@ services: networks: nextcloud: external: false - mariadb: + postgres: external: true proxy: external: true diff --git a/docker/postgres/docker-compose.yaml b/docker/postgres/docker-compose.yaml new file mode 100644 index 00000000..92942046 --- /dev/null +++ b/docker/postgres/docker-compose.yaml @@ -0,0 +1,20 @@ +version: "3" +services: + postgres: + container_name: postgres + image: postgres:13 + environment: + - TZ=Europe/Helsinki + - POSTGRES_PASSWORD=12345 + ports: + - 5432:5432 + networks: + - postgres + volumes: + - /docker/postgres:/var/lib/postgresql/data + - /etc/localtime:/etc/localtime:ro + restart: unless-stopped + +networks: + postgres: + external: true diff --git a/docker/tvheadend/docker-compose.yaml b/docker/tvheadend/docker-compose.yaml new file mode 100644 index 00000000..583667f1 --- /dev/null +++ b/docker/tvheadend/docker-compose.yaml @@ -0,0 +1,40 @@ +version: "2" +services: + tvheadend: + image: linuxserver/tvheadend + container_name: tvheadend + environment: + - TZ=Europe/Helsinki + - PUID=1000 + - PGID=985 + volumes: + - /docker/tvheadend:/config + - /mnt/Storage/Media/PVR:/recordings + - /etc/localtime:/etc/localtime:ro + ports: + - 9982:9982 + devices: + - /dev/dri:/dev/dri #hardware acceleration + - /dev/dvb:/dev/dvb #tuner card + restart: unless-stopped + networks: + - proxy + labels: + - "traefik.enable=true" + + - "traefik.http.routers.tvheadend-redirect.entrypoints=http" + - "traefik.http.routers.tvheadend-redirect.rule=Host(`tvheadend.korhonen.cc`)" + - "traefik.http.middlewares.http2https.redirectscheme.scheme=https" + - "traefik.http.routers.tvheadend-redirect.middlewares=http2https" + + - "traefik.http.routers.tvheadend.entrypoints=https" + - "traefik.http.routers.tvheadend.rule=Host(`tvheadend.korhonen.cc`)" + - "traefik.http.routers.tvheadend.tls=true" + - "traefik.http.routers.tvheadend.tls.certresolver=http" + - "traefik.http.routers.tvheadend.service=tvheadend" + - "traefik.docker.network=proxy" + - "traefik.http.services.tvheadend.loadbalancer.server.port=9981" + +networks: + proxy: + external: true diff --git a/dotdrop b/dotdrop index 636c1ade..900f705b 160000 --- a/dotdrop +++ b/dotdrop @@ -1 +1 @@ -Subproject commit 636c1ade26a5205ca84aef624ed971c0e529ffa7 +Subproject commit 900f705b30ee07063ecc7f2df24fc7b28a9451a5 diff --git a/home/.config/ncmpcpp/config b/home/.config/ncmpcpp/config index c6b5ccd9..ebe09fb9 100644 --- a/home/.config/ncmpcpp/config +++ b/home/.config/ncmpcpp/config @@ -9,10 +9,9 @@ mpd_music_dir = ~/Music mpd_crossfade_time = 2 ##### visualizer ##### -visualizer_fifo_path = /tmp/mpd.fifo +visualizer_data_source = /tmp/mpd.fifo visualizer_output_name = Visualizer visualizer_in_stereo = yes -visualizer_sync_interval = 30 # spectrum,wave,wave_filled,ellipse. visualizer_type = wave_filled visualizer_look = ●▮ diff --git a/home/.config/zsh/01-env.zsh b/home/.config/zsh/01-env.zsh index 8e509d7e..e742dd41 100644 --- a/home/.config/zsh/01-env.zsh +++ b/home/.config/zsh/01-env.zsh @@ -33,11 +33,16 @@ export DOTREPO="$HOME/git/dotfiles" # nvim ftw! export EDITOR=nvim export PAGER="nvimpager -p" +export AUR_PAGER=$PAGER -# use gpg for ssh +# Use GPG for SSH authentication export GPG_TTY="$(tty)" -export SSH_AUTH_SOCK="/run/user/$UID/gnupg/S.gpg-agent.ssh" -gpg-connect-agent updatestartuptty /bye > /dev/null + +# set SSH_AUTH_SOCK if not logging in over SSH +if [ "$SSH_CONNECTION" != "" ]; then + export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) + gpgconf --launch gpg-agent +fi # tehfuk eval $(thefuck --alias) diff --git a/home/.config/zsh/03-aliases.zsh b/home/.config/zsh/03-aliases.zsh index 7f0afa24..4c0d4215 100644 --- a/home/.config/zsh/03-aliases.zsh +++ b/home/.config/zsh/03-aliases.zsh @@ -128,23 +128,24 @@ passync() { pass git pull && pass git push && updatesecrets } update() { all() { + paru plugins {%@@ if profile == "Moria" @@%} - base --devel + repo docker-update docker system prune --volumes - {%@@ elif profile == "Mirkwood" @@%} - base --devel firefox-nightly - {%@@ else @@%} - base --devel {%@@ endif @@%} - flatpak update + sudo flatpak update sudo awman-update } - base() { - paru -Pw - paru -Syu $@ + repo() { + aur sync -Su --margs --noconfirm + firefox + } + + firefox() { + aur sync -S --rebuild firefox-nightly --margs --noconfirm } plugins() { @@ -171,17 +172,20 @@ update() { all) all ;; - base) - base - ;; plugins) plugins ;; docker) docker-update ;; + repo) + repo + ;; + firefox) + firefox + ;; *) - base $@ + paru ;; esac } @@ -204,6 +208,8 @@ alias notify-send='notify-send --icon=alarm' # download archiso alias archiso='curl "http://mirror.rackspace.com/archlinux/iso/$(date +%Y.%m).01/archlinux-$(date +%Y.%m).01-x86_64.iso"' +# Update repository + # encrypted tar's with zstd compression cgpgtar() { tar cf - --zstd $1 | gpg -e -z 0 > $1.tar.zst.gpg } @@ -280,4 +286,3 @@ btw, () { ▟███▀▘ ▝▀███▙ ▟▛▀ ▀▜▙" } - diff --git a/home/.ssh/config b/home/.ssh/config index b99bf18d..a00f477a 100644 --- a/home/.ssh/config +++ b/home/.ssh/config @@ -23,18 +23,18 @@ host moria port 221 User balrog ForwardAgent yes + RemoteForward /run/user/1000/gnupg/S.gpg-agent /run/user/1000/gnupg/S.gpg-agent.extra host gondor hostname gondor.korhonen.cc port 22 User reekymarko - ForwardAgent yes + RemoteForward /run/user/1000/gnupg/S.gpg-agent /run/user/1000/gnupg/S.gpg-agent.extra host anitta HostName 10.200.200.4 port 22 user reekymarko - ForwardAgent yes host takamaki HostName 10.200.200.5 diff --git a/root/etc/pacman.conf b/root/etc/pacman.conf index 43ca4cc3..01d8a2a7 100755 --- a/root/etc/pacman.conf +++ b/root/etc/pacman.conf @@ -8,6 +8,18 @@ SigLevel = Required DatabaseOptional Architecture = auto LocalFileSigLevel = Optional CacheDir = /var/cache/pacman/pkg +{%@@ if profile == "Moria" @@%} +CleanMethod=KeepCurrent +CacheDir=/docker/index.korhonen.cc/repo/arch_linux/korhonen_aur/x86_64 +{%@@ endif @@%} + +[korhonen_aur] +{%@@ if profile == "Moria" @@%} +Server = file:///docker/index.korhonen.cc/repo/arch_linux/$repo/$arch +{%@@ else @@%} +Include = /etc/pacman.d/pacserve +Server = https://index.korhonen.cc/repo/arch_linux/$repo/$arch +{%@@ endif @@%} [core] Include = /etc/pacman.d/pacserve