diff --git a/.gitignore b/.gitignore
index ed5ec8f..09d5c8d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1 @@
*_pass.txt
-*.env
-rclone.conf
diff --git a/README.md b/README.md
index 6acbb94..3fcf27b 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
# Hugo
-[Guides](../../../wiki) on and config files for setting up a home server
\ No newline at end of file
+[Guides](https://git.depeuter.tk/tdpeuter/Hugo/wiki) on and config files for setting up a home server
\ No newline at end of file
diff --git a/apps/homepage/bookmarks.yaml b/apps/homepage/bookmarks.yaml
new file mode 100644
index 0000000..e2b732c
--- /dev/null
+++ b/apps/homepage/bookmarks.yaml
@@ -0,0 +1,21 @@
+- Office:
+ - Zoho Mail:
+ - icon: zohomail
+ href: https://mail.zoho.eu
+- Network:
+ - Cloudlfare:
+ - icon: cloudflare
+ href: https://dash.cloudflare.com
+ - TransIP:
+ - icon: https://www.transip.eu/cache-60c9b25f/img/transip-new/favicons/favicon.png
+ href: https://www.transip.eu/cp/
+ - Telenet Internet usage:
+ - icon: https://static.telenet.be/assets/favicon/favicon.ico
+ href: https://www2.telenet.be/nl/klantenservice/raadpleeg-je-internetverbruik/
+ - Telenet Modem:
+ - icon: https://static.telenet.be/assets/favicon/favicon.ico
+ href: https://mijn.telenet.be/mijntelenet/rgw/settings.do?identifier=u381160&action=showAdvancedSettings
+- Retired:
+ - Readarr:
+ - icon: readarr
+ href: https://readarr.depeuter.dev
diff --git a/apps/homepage/services.yaml b/apps/homepage/services.yaml
new file mode 100644
index 0000000..ed141b2
--- /dev/null
+++ b/apps/homepage/services.yaml
@@ -0,0 +1,73 @@
+- Media:
+ - Jellyfin:
+ description: Spotify & Netflix lovechild
+ href: https://jelly.depeuter.dev
+ icon: jellyfin
+ - Plex:
+ icon: plex
+ href: https://www.plex.tv
+ description: Netflix 2.0
+ - t Kioskje:
+ icon: calibreweb
+ href: https://books.depeuter.dev
+ description: Library
+ - FreshRSS:
+ description: RSS reader and aggregator
+ href: https://rss.depeuter.dev
+ icon: https://freshrss.org/images/icon.svg
+- Office & development:
+ - Nextcloud:
+ description: Cloud storage
+ href: https://cloud.depeuter.dev
+ icon: nextcloud
+ - Vaultwarden:
+ icon: bitwarden
+ href: https://vault.depeuter.dev
+ description: Password manager
+ - HuGit:
+ icon: gitea
+ href: https://git.depeuter.dev
+ description: Git server by Gitea
+- Downloaders:
+ - Radarr:
+ description: Movies manager
+ href: https://radarr.depeuter.dev
+ icon: radarr
+ - Sonarr:
+ description: Series manager
+ href: https://sonarr.depeuter.dev
+ icon: sonarr
+ - Bazarr:
+ description: Subtitles manager
+ href: https://bazarr.depeuter.dev
+ icon: bazarr
+ - Prowlarr:
+ description: Indexers manager
+ href: https://prowlarr.depeuter.dev
+ icon: prowlarr
+ - qBittorrent:
+ icon: qbittorrent
+ href: https://qb.depeuter.dev
+ description: Torrent downloader
+- Network:
+ - Pi-hole:
+ icon: pihole
+ href: https://pihole.depeuter.dev/admin
+ description: Local DNS server and ad blocker
+ - Traefik:
+ icon: traefik
+ href: https://traefik.depeuter.dev/dashboard/#/
+ description: Reverse proxy
+ - Uptime Kuma:
+ icon: uptime-kuma
+ href: https://up.depeuter.dev
+ description: Status of services
+- Admin:
+ - Hugo:
+ icon: truenas-scale
+ href: https://truenas.depeuter.dev
+ description: TrueNAS SCALE WebUI
+ - Nicole:
+ icon: https://upload.wikimedia.org/wikipedia/commons/2/28/LaCie_Logo.svg
+ href: http://lacie.depeuter.dev
+ description: LaCie-5big WebUI
diff --git a/apps/homepage/widgets.yaml b/apps/homepage/widgets.yaml
new file mode 100644
index 0000000..a73b7ea
--- /dev/null
+++ b/apps/homepage/widgets.yaml
@@ -0,0 +1,7 @@
+- resources:
+ cpu: true
+ memory: true
+- search:
+ provider: duckduckgo
+ focus: true
+ target: _blank
diff --git a/apps/jellyfin/internet_radio/plaza.m3u b/apps/jellyfin/internet_radio/plaza.m3u
new file mode 100644
index 0000000..287c935
--- /dev/null
+++ b/apps/jellyfin/internet_radio/plaza.m3u
@@ -0,0 +1,11 @@
+#EXTINF:0,Nightwave Plaza
+http://radio.plaza.one/mp3
+
+#EXTINF:0,I Love Radio
+http://stream01.iloveradio.de/iloveradio5.mp3
+
+#EXTINF:-1 group-title="Music" tvg-logo="https://upload.wikimedia.org/wikipedia/en/thumb/5/57/Ekattor_TV_logo.svg/190px-Ekattor_TV_logo.svg.png" tvg-id="", Chillhop Music Live
+https://manifest.googlevideo.com/api/manifest/hls_variant/expire/1691552678/ei/RrfSZL3TKYjF1wKR0KnACg/ip/2a02%3A1812%3A2437%3Ac700%3Abfaa%3A20b4%3A68c8%3A47ba/id/7NOSDKb0HlU.4/source/yt_live_broadcast/requiressl/yes/hfr/1/playlist_duration/30/manifest_duration/30/maudio/1/spc/UWF9f7Jv1TacsX7viTFWPkyjT01PicbFdczHL4wqTA/vprv/1/go/1/pacing/0/nvgoi/1/keepalive/yes/fexp/24007246%2C51000024/dover/11/itag/0/playlist_type/DVR/sparams/expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Chfr%2Cplaylist_duration%2Cmanifest_duration%2Cmaudio%2Cspc%2Cvprv%2Cgo%2Citag%2Cplaylist_type/sig/AOq0QJ8wRgIhAIAJS1ZJ6xKO1M8fUsYBpUVN24LM5n-a_s8hE0l5IgmZAiEA5aWp4k3oywVpc7Cr93MikgsOIE3K-ReycE0Wp-3DaUs%3D/file/index.m3u8
+
+#EXTINF:-1 group-title="Music" tvg-logo="https://yt3.googleusercontent.com/B_s3-ySIdKWjnyq_JrAbLlz494V0rJq9CrQpGgy_mEYfGYihwFB6AvgXBidmminUG60DoqmzAw=s176-c-k-c0x00ffffff-no-rj" tvg-id="", Ambition Live
+https://manifest.googlevideo.com/api/manifest/hls_variant/expire/1691552679/ei/R7fSZPTHLaa06dsPwqeNkAY/ip/2a02%3A1812%3A2437%3Ac700%3Abfaa%3A20b4%3A68c8%3A47ba/id/GYoFe5X3P2c.1/source/yt_live_broadcast/requiressl/yes/hfr/1/playlist_duration/30/manifest_duration/30/maudio/1/spc/UWF9fy1S9iZdaeclUVwmJaGcuKErO7G4ZCaXEagIFw/vprv/1/go/1/pacing/0/nvgoi/1/keepalive/yes/fexp/24007246%2C24362685%2C24363393%2C51000012/beids/24350017/dover/11/itag/0/playlist_type/DVR/sparams/expire%2Cei%2Cip%2Cid%2Csource%2Crequiressl%2Chfr%2Cplaylist_duration%2Cmanifest_duration%2Cmaudio%2Cspc%2Cvprv%2Cgo%2Citag%2Cplaylist_type/sig/AOq0QJ8wRgIhAPywbZyAXUWeuNez6mUk_LAVhbzXpTxAhcmSupevJHWHAiEApVDnoLfvNnzeFhVqu08Dhxg1SLpBL2biyEo3vSxBh6E%3D/file/index.m3u8
diff --git a/apps/truecharts/tcdbinfo.sh b/apps/truecharts/tcdbinfo.sh
deleted file mode 100755
index ecf54f6..0000000
--- a/apps/truecharts/tcdbinfo.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-# get namespaces
-namespaces=$(k3s kubectl get secrets -A | grep -E "dbcreds|cnpg-main-urls" | awk '{print $1, $2}')
-
-# iterate over namespaces
-( printf "Application | Username | Password | Address | Port\n"
-echo "$namespaces" | while read ns secret; do
- # extract application name
- app_name=$(echo "$ns" | sed 's/^ix-//')
- if [ "$secret" = "dbcreds" ]; then
- creds=$(k3s kubectl get secret/$secret --namespace "$ns" -o jsonpath='{.data.url}' | base64 -d)
- else
- creds=$(k3s kubectl get secret/$secret --namespace "$ns" -o jsonpath='{.data.std}' | base64 -d)
- fi
-
- # get username, password, addresspart, and port
- username=$(echo "$creds" | awk -F '//' '{print $2}' | awk -F ':' '{print $1}')
- password=$(echo "$creds" | awk -F ':' '{print $3}' | awk -F '@' '{print $1}')
- addresspart=$(echo "$creds" | awk -F '@' '{print $2}' | awk -F ':' '{print $1}')
- port=$(echo "$creds" | awk -F ':' '{print $4}' | awk -F '/' '{print $1}')
-
- # construct full address
- full_address="${addresspart}.${ns}.svc.cluster.local"
-
- # print results with aligned columns
- printf "%s | %s | %s | %s | %s\n" "$app_name" "$username" "$password" "$full_address" "$port"
-done ) | column -t -s "|"
diff --git a/assets/gitea/img/apple-touch-icon.png b/assets/gitea/img/apple-touch-icon.png
deleted file mode 100644
index 99da478..0000000
Binary files a/assets/gitea/img/apple-touch-icon.png and /dev/null differ
diff --git a/assets/gitea/img/avatar_default.png b/assets/gitea/img/avatar_default.png
deleted file mode 100644
index 41b9736..0000000
Binary files a/assets/gitea/img/avatar_default.png and /dev/null differ
diff --git a/assets/gitea/img/checkmark.png b/assets/gitea/img/checkmark.png
deleted file mode 100644
index ad85a91..0000000
Binary files a/assets/gitea/img/checkmark.png and /dev/null differ
diff --git a/assets/gitea/img/dingtalk.ico b/assets/gitea/img/dingtalk.ico
deleted file mode 100644
index a2682bb..0000000
Binary files a/assets/gitea/img/dingtalk.ico and /dev/null differ
diff --git a/assets/gitea/img/discord.png b/assets/gitea/img/discord.png
deleted file mode 100644
index db0e70d..0000000
Binary files a/assets/gitea/img/discord.png and /dev/null differ
diff --git a/assets/gitea/img/emoji/codeberg.png b/assets/gitea/img/emoji/codeberg.png
deleted file mode 100644
index b916138..0000000
Binary files a/assets/gitea/img/emoji/codeberg.png and /dev/null differ
diff --git a/assets/gitea/img/emoji/forgejo.png b/assets/gitea/img/emoji/forgejo.png
deleted file mode 100644
index f335e51..0000000
Binary files a/assets/gitea/img/emoji/forgejo.png and /dev/null differ
diff --git a/assets/gitea/img/emoji/git.png b/assets/gitea/img/emoji/git.png
deleted file mode 100644
index 00a6bcf..0000000
Binary files a/assets/gitea/img/emoji/git.png and /dev/null differ
diff --git a/assets/gitea/img/emoji/gitea.png b/assets/gitea/img/emoji/gitea.png
deleted file mode 100644
index 69e0ce9..0000000
Binary files a/assets/gitea/img/emoji/gitea.png and /dev/null differ
diff --git a/assets/gitea/img/emoji/github.png b/assets/gitea/img/emoji/github.png
deleted file mode 100644
index 88efc35..0000000
Binary files a/assets/gitea/img/emoji/github.png and /dev/null differ
diff --git a/assets/gitea/img/emoji/gitlab.png b/assets/gitea/img/emoji/gitlab.png
deleted file mode 100644
index 55a0d2b..0000000
Binary files a/assets/gitea/img/emoji/gitlab.png and /dev/null differ
diff --git a/assets/gitea/img/emoji/gogs.png b/assets/gitea/img/emoji/gogs.png
deleted file mode 100644
index 6471a84..0000000
Binary files a/assets/gitea/img/emoji/gogs.png and /dev/null differ
diff --git a/assets/gitea/img/favicon.png b/assets/gitea/img/favicon.png
deleted file mode 100644
index 6f03d71..0000000
Binary files a/assets/gitea/img/favicon.png and /dev/null differ
diff --git a/assets/gitea/img/favicon.svg b/assets/gitea/img/favicon.svg
deleted file mode 100644
index 2c81d56..0000000
--- a/assets/gitea/img/favicon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/feishu.png b/assets/gitea/img/feishu.png
deleted file mode 100644
index 2c3ab74..0000000
Binary files a/assets/gitea/img/feishu.png and /dev/null differ
diff --git a/assets/gitea/img/forgejo-loading.svg b/assets/gitea/img/forgejo-loading.svg
deleted file mode 100644
index 919552e..0000000
--- a/assets/gitea/img/forgejo-loading.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/assets/gitea/img/forgejo.svg b/assets/gitea/img/forgejo.svg
deleted file mode 100644
index 804b05e..0000000
--- a/assets/gitea/img/forgejo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/gitea-original.svg b/assets/gitea/img/gitea-original.svg
deleted file mode 100644
index dca9b4f..0000000
--- a/assets/gitea/img/gitea-original.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/gitea.svg b/assets/gitea/img/gitea.svg
deleted file mode 100644
index 804b05e..0000000
--- a/assets/gitea/img/gitea.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/gogs.ico b/assets/gitea/img/gogs.ico
deleted file mode 100644
index 3438553..0000000
Binary files a/assets/gitea/img/gogs.ico and /dev/null differ
diff --git a/assets/gitea/img/logo.png b/assets/gitea/img/logo.png
deleted file mode 100644
index c856b56..0000000
Binary files a/assets/gitea/img/logo.png and /dev/null differ
diff --git a/assets/gitea/img/logo.svg b/assets/gitea/img/logo.svg
deleted file mode 100644
index 2c81d56..0000000
--- a/assets/gitea/img/logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/msteams.png b/assets/gitea/img/msteams.png
deleted file mode 100644
index d7b81da..0000000
Binary files a/assets/gitea/img/msteams.png and /dev/null differ
diff --git a/assets/gitea/img/openid-16x16.png b/assets/gitea/img/openid-16x16.png
deleted file mode 100644
index ee1b00e..0000000
Binary files a/assets/gitea/img/openid-16x16.png and /dev/null differ
diff --git a/assets/gitea/img/packagist.png b/assets/gitea/img/packagist.png
deleted file mode 100644
index 76c0e62..0000000
Binary files a/assets/gitea/img/packagist.png and /dev/null differ
diff --git a/assets/gitea/img/repo_default.png b/assets/gitea/img/repo_default.png
deleted file mode 100644
index fa11c82..0000000
Binary files a/assets/gitea/img/repo_default.png and /dev/null differ
diff --git a/assets/gitea/img/slack.png b/assets/gitea/img/slack.png
deleted file mode 100644
index 28d863f..0000000
Binary files a/assets/gitea/img/slack.png and /dev/null differ
diff --git a/assets/gitea/img/sourcehut.svg b/assets/gitea/img/sourcehut.svg
deleted file mode 100644
index a2a08d7..0000000
--- a/assets/gitea/img/sourcehut.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/fontawesome-openid.svg b/assets/gitea/img/svg/fontawesome-openid.svg
deleted file mode 100644
index f806899..0000000
--- a/assets/gitea/img/svg/fontawesome-openid.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/fontawesome-save.svg b/assets/gitea/img/svg/fontawesome-save.svg
deleted file mode 100644
index e7b3ea9..0000000
--- a/assets/gitea/img/svg/fontawesome-save.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/fontawesome-send.svg b/assets/gitea/img/svg/fontawesome-send.svg
deleted file mode 100644
index f94715d..0000000
--- a/assets/gitea/img/svg/fontawesome-send.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/fontawesome-windows.svg b/assets/gitea/img/svg/fontawesome-windows.svg
deleted file mode 100644
index b1c1604..0000000
--- a/assets/gitea/img/svg/fontawesome-windows.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-alpine.svg b/assets/gitea/img/svg/gitea-alpine.svg
deleted file mode 100644
index 43ebbaa..0000000
--- a/assets/gitea/img/svg/gitea-alpine.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-arch.svg b/assets/gitea/img/svg/gitea-arch.svg
deleted file mode 100644
index 943a92c..0000000
--- a/assets/gitea/img/svg/gitea-arch.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-azuread.svg b/assets/gitea/img/svg/gitea-azuread.svg
deleted file mode 100644
index 2bef0f7..0000000
--- a/assets/gitea/img/svg/gitea-azuread.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-azureadv2.svg b/assets/gitea/img/svg/gitea-azureadv2.svg
deleted file mode 100644
index e8ffdf0..0000000
--- a/assets/gitea/img/svg/gitea-azureadv2.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-bitbucket.svg b/assets/gitea/img/svg/gitea-bitbucket.svg
deleted file mode 100644
index 83e4c5c..0000000
--- a/assets/gitea/img/svg/gitea-bitbucket.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-cargo.svg b/assets/gitea/img/svg/gitea-cargo.svg
deleted file mode 100644
index 76467f6..0000000
--- a/assets/gitea/img/svg/gitea-cargo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-chef.svg b/assets/gitea/img/svg/gitea-chef.svg
deleted file mode 100644
index c5e8a72..0000000
--- a/assets/gitea/img/svg/gitea-chef.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-codebase.svg b/assets/gitea/img/svg/gitea-codebase.svg
deleted file mode 100644
index b210801..0000000
--- a/assets/gitea/img/svg/gitea-codebase.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-composer.svg b/assets/gitea/img/svg/gitea-composer.svg
deleted file mode 100644
index 1b91102..0000000
--- a/assets/gitea/img/svg/gitea-composer.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-conan.svg b/assets/gitea/img/svg/gitea-conan.svg
deleted file mode 100644
index bc09314..0000000
--- a/assets/gitea/img/svg/gitea-conan.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-conda.svg b/assets/gitea/img/svg/gitea-conda.svg
deleted file mode 100644
index 800730a..0000000
--- a/assets/gitea/img/svg/gitea-conda.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-cran.svg b/assets/gitea/img/svg/gitea-cran.svg
deleted file mode 100644
index ba76329..0000000
--- a/assets/gitea/img/svg/gitea-cran.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-debian.svg b/assets/gitea/img/svg/gitea-debian.svg
deleted file mode 100644
index fa2f2f4..0000000
--- a/assets/gitea/img/svg/gitea-debian.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-discord.svg b/assets/gitea/img/svg/gitea-discord.svg
deleted file mode 100644
index 2edcb4f..0000000
--- a/assets/gitea/img/svg/gitea-discord.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-double-chevron-left.svg b/assets/gitea/img/svg/gitea-double-chevron-left.svg
deleted file mode 100644
index ec7d121..0000000
--- a/assets/gitea/img/svg/gitea-double-chevron-left.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-double-chevron-right.svg b/assets/gitea/img/svg/gitea-double-chevron-right.svg
deleted file mode 100644
index e312728..0000000
--- a/assets/gitea/img/svg/gitea-double-chevron-right.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-dropbox.svg b/assets/gitea/img/svg/gitea-dropbox.svg
deleted file mode 100644
index bbcbdb6..0000000
--- a/assets/gitea/img/svg/gitea-dropbox.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-empty-checkbox.svg b/assets/gitea/img/svg/gitea-empty-checkbox.svg
deleted file mode 100644
index 40d7536..0000000
--- a/assets/gitea/img/svg/gitea-empty-checkbox.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-exclamation.svg b/assets/gitea/img/svg/gitea-exclamation.svg
deleted file mode 100644
index b899f8d..0000000
--- a/assets/gitea/img/svg/gitea-exclamation.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-facebook.svg b/assets/gitea/img/svg/gitea-facebook.svg
deleted file mode 100644
index 6101bec..0000000
--- a/assets/gitea/img/svg/gitea-facebook.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-forgejo.svg b/assets/gitea/img/svg/gitea-forgejo.svg
deleted file mode 100644
index 22ae790..0000000
--- a/assets/gitea/img/svg/gitea-forgejo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-git.svg b/assets/gitea/img/svg/gitea-git.svg
deleted file mode 100644
index 33a98de..0000000
--- a/assets/gitea/img/svg/gitea-git.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-gitbucket.svg b/assets/gitea/img/svg/gitea-gitbucket.svg
deleted file mode 100644
index 62f6034..0000000
--- a/assets/gitea/img/svg/gitea-gitbucket.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-gitea.svg b/assets/gitea/img/svg/gitea-gitea.svg
deleted file mode 100644
index 61ef370..0000000
--- a/assets/gitea/img/svg/gitea-gitea.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-gitlab.svg b/assets/gitea/img/svg/gitea-gitlab.svg
deleted file mode 100644
index 03fcb0b..0000000
--- a/assets/gitea/img/svg/gitea-gitlab.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-go.svg b/assets/gitea/img/svg/gitea-go.svg
deleted file mode 100644
index bc7969d..0000000
--- a/assets/gitea/img/svg/gitea-go.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-gogs.svg b/assets/gitea/img/svg/gitea-gogs.svg
deleted file mode 100644
index 7727542..0000000
--- a/assets/gitea/img/svg/gitea-gogs.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-google.svg b/assets/gitea/img/svg/gitea-google.svg
deleted file mode 100644
index 7dd2622..0000000
--- a/assets/gitea/img/svg/gitea-google.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-helm.svg b/assets/gitea/img/svg/gitea-helm.svg
deleted file mode 100644
index 2419c31..0000000
--- a/assets/gitea/img/svg/gitea-helm.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-jetbrains.svg b/assets/gitea/img/svg/gitea-jetbrains.svg
deleted file mode 100644
index 5821736..0000000
--- a/assets/gitea/img/svg/gitea-jetbrains.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-join.svg b/assets/gitea/img/svg/gitea-join.svg
deleted file mode 100644
index c1d2f27..0000000
--- a/assets/gitea/img/svg/gitea-join.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-lock-cog.svg b/assets/gitea/img/svg/gitea-lock-cog.svg
deleted file mode 100644
index 683c2ce..0000000
--- a/assets/gitea/img/svg/gitea-lock-cog.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-lock.svg b/assets/gitea/img/svg/gitea-lock.svg
deleted file mode 100644
index 87069ea..0000000
--- a/assets/gitea/img/svg/gitea-lock.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-mastodon.svg b/assets/gitea/img/svg/gitea-mastodon.svg
deleted file mode 100644
index c611990..0000000
--- a/assets/gitea/img/svg/gitea-mastodon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-matrix.svg b/assets/gitea/img/svg/gitea-matrix.svg
deleted file mode 100644
index 89c6258..0000000
--- a/assets/gitea/img/svg/gitea-matrix.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-maven.svg b/assets/gitea/img/svg/gitea-maven.svg
deleted file mode 100644
index 320d01a..0000000
--- a/assets/gitea/img/svg/gitea-maven.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-microsoftonline.svg b/assets/gitea/img/svg/gitea-microsoftonline.svg
deleted file mode 100644
index f2ce13a..0000000
--- a/assets/gitea/img/svg/gitea-microsoftonline.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-nextcloud.svg b/assets/gitea/img/svg/gitea-nextcloud.svg
deleted file mode 100644
index 3d760b3..0000000
--- a/assets/gitea/img/svg/gitea-nextcloud.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-npm.svg b/assets/gitea/img/svg/gitea-npm.svg
deleted file mode 100644
index 7ef74e7..0000000
--- a/assets/gitea/img/svg/gitea-npm.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-nuget.svg b/assets/gitea/img/svg/gitea-nuget.svg
deleted file mode 100644
index da6bfd2..0000000
--- a/assets/gitea/img/svg/gitea-nuget.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-onedev.svg b/assets/gitea/img/svg/gitea-onedev.svg
deleted file mode 100644
index 94ad1ba..0000000
--- a/assets/gitea/img/svg/gitea-onedev.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-open-with-jetbrains.svg b/assets/gitea/img/svg/gitea-open-with-jetbrains.svg
deleted file mode 100644
index 2b1491b..0000000
--- a/assets/gitea/img/svg/gitea-open-with-jetbrains.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-open-with-vscode.svg b/assets/gitea/img/svg/gitea-open-with-vscode.svg
deleted file mode 100644
index 151c45e..0000000
--- a/assets/gitea/img/svg/gitea-open-with-vscode.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-open-with-vscodium.svg b/assets/gitea/img/svg/gitea-open-with-vscodium.svg
deleted file mode 100644
index 9f70878..0000000
--- a/assets/gitea/img/svg/gitea-open-with-vscodium.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-openid.svg b/assets/gitea/img/svg/gitea-openid.svg
deleted file mode 100644
index f4702d2..0000000
--- a/assets/gitea/img/svg/gitea-openid.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-pub.svg b/assets/gitea/img/svg/gitea-pub.svg
deleted file mode 100644
index 4125867..0000000
--- a/assets/gitea/img/svg/gitea-pub.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-python.svg b/assets/gitea/img/svg/gitea-python.svg
deleted file mode 100644
index 68e19ef..0000000
--- a/assets/gitea/img/svg/gitea-python.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-rpm.svg b/assets/gitea/img/svg/gitea-rpm.svg
deleted file mode 100644
index d0d3db1..0000000
--- a/assets/gitea/img/svg/gitea-rpm.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-rubygems.svg b/assets/gitea/img/svg/gitea-rubygems.svg
deleted file mode 100644
index 4e43bdf..0000000
--- a/assets/gitea/img/svg/gitea-rubygems.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-split.svg b/assets/gitea/img/svg/gitea-split.svg
deleted file mode 100644
index 9ce3077..0000000
--- a/assets/gitea/img/svg/gitea-split.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-swift.svg b/assets/gitea/img/svg/gitea-swift.svg
deleted file mode 100644
index 4182100..0000000
--- a/assets/gitea/img/svg/gitea-swift.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-twitter.svg b/assets/gitea/img/svg/gitea-twitter.svg
deleted file mode 100644
index 5ed1e26..0000000
--- a/assets/gitea/img/svg/gitea-twitter.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-unlock.svg b/assets/gitea/img/svg/gitea-unlock.svg
deleted file mode 100644
index 595dec0..0000000
--- a/assets/gitea/img/svg/gitea-unlock.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-vagrant.svg b/assets/gitea/img/svg/gitea-vagrant.svg
deleted file mode 100644
index ba50101..0000000
--- a/assets/gitea/img/svg/gitea-vagrant.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-vscodium.svg b/assets/gitea/img/svg/gitea-vscodium.svg
deleted file mode 100644
index 6aad3d3..0000000
--- a/assets/gitea/img/svg/gitea-vscodium.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-whitespace.svg b/assets/gitea/img/svg/gitea-whitespace.svg
deleted file mode 100644
index 9d3b342..0000000
--- a/assets/gitea/img/svg/gitea-whitespace.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/gitea-yandex.svg b/assets/gitea/img/svg/gitea-yandex.svg
deleted file mode 100644
index d24c0be..0000000
--- a/assets/gitea/img/svg/gitea-yandex.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/material-invert-colors.svg b/assets/gitea/img/svg/material-invert-colors.svg
deleted file mode 100644
index feddf73..0000000
--- a/assets/gitea/img/svg/material-invert-colors.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/material-palette.svg b/assets/gitea/img/svg/material-palette.svg
deleted file mode 100644
index f98cef7..0000000
--- a/assets/gitea/img/svg/material-palette.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-accessibility-inset.svg b/assets/gitea/img/svg/octicon-accessibility-inset.svg
deleted file mode 100644
index 2a728a9..0000000
--- a/assets/gitea/img/svg/octicon-accessibility-inset.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-accessibility.svg b/assets/gitea/img/svg/octicon-accessibility.svg
deleted file mode 100644
index fcd5682..0000000
--- a/assets/gitea/img/svg/octicon-accessibility.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-alert-fill.svg b/assets/gitea/img/svg/octicon-alert-fill.svg
deleted file mode 100644
index a2135af..0000000
--- a/assets/gitea/img/svg/octicon-alert-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-alert.svg b/assets/gitea/img/svg/octicon-alert.svg
deleted file mode 100644
index 1d97fbe..0000000
--- a/assets/gitea/img/svg/octicon-alert.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-apps.svg b/assets/gitea/img/svg/octicon-apps.svg
deleted file mode 100644
index 9119636..0000000
--- a/assets/gitea/img/svg/octicon-apps.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-archive.svg b/assets/gitea/img/svg/octicon-archive.svg
deleted file mode 100644
index 48ad67e..0000000
--- a/assets/gitea/img/svg/octicon-archive.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-arrow-both.svg b/assets/gitea/img/svg/octicon-arrow-both.svg
deleted file mode 100644
index aec2d6a..0000000
--- a/assets/gitea/img/svg/octicon-arrow-both.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-arrow-down-left.svg b/assets/gitea/img/svg/octicon-arrow-down-left.svg
deleted file mode 100644
index 720f320..0000000
--- a/assets/gitea/img/svg/octicon-arrow-down-left.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-arrow-down-right.svg b/assets/gitea/img/svg/octicon-arrow-down-right.svg
deleted file mode 100644
index 4404432..0000000
--- a/assets/gitea/img/svg/octicon-arrow-down-right.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-arrow-down.svg b/assets/gitea/img/svg/octicon-arrow-down.svg
deleted file mode 100644
index 87b5263..0000000
--- a/assets/gitea/img/svg/octicon-arrow-down.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-arrow-left.svg b/assets/gitea/img/svg/octicon-arrow-left.svg
deleted file mode 100644
index 0e49872..0000000
--- a/assets/gitea/img/svg/octicon-arrow-left.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-arrow-right.svg b/assets/gitea/img/svg/octicon-arrow-right.svg
deleted file mode 100644
index 5298ea1..0000000
--- a/assets/gitea/img/svg/octicon-arrow-right.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-arrow-switch.svg b/assets/gitea/img/svg/octicon-arrow-switch.svg
deleted file mode 100644
index 8d1bc1d..0000000
--- a/assets/gitea/img/svg/octicon-arrow-switch.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-arrow-up-left.svg b/assets/gitea/img/svg/octicon-arrow-up-left.svg
deleted file mode 100644
index 053102b..0000000
--- a/assets/gitea/img/svg/octicon-arrow-up-left.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-arrow-up-right.svg b/assets/gitea/img/svg/octicon-arrow-up-right.svg
deleted file mode 100644
index d3c0533..0000000
--- a/assets/gitea/img/svg/octicon-arrow-up-right.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-arrow-up.svg b/assets/gitea/img/svg/octicon-arrow-up.svg
deleted file mode 100644
index b790d6e..0000000
--- a/assets/gitea/img/svg/octicon-arrow-up.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-beaker.svg b/assets/gitea/img/svg/octicon-beaker.svg
deleted file mode 100644
index ce0ad4d..0000000
--- a/assets/gitea/img/svg/octicon-beaker.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-bell-fill.svg b/assets/gitea/img/svg/octicon-bell-fill.svg
deleted file mode 100644
index a385b9e..0000000
--- a/assets/gitea/img/svg/octicon-bell-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-bell-slash.svg b/assets/gitea/img/svg/octicon-bell-slash.svg
deleted file mode 100644
index 344671d..0000000
--- a/assets/gitea/img/svg/octicon-bell-slash.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-bell.svg b/assets/gitea/img/svg/octicon-bell.svg
deleted file mode 100644
index 26903da..0000000
--- a/assets/gitea/img/svg/octicon-bell.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-blocked.svg b/assets/gitea/img/svg/octicon-blocked.svg
deleted file mode 100644
index 0d0a7c0..0000000
--- a/assets/gitea/img/svg/octicon-blocked.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-bold.svg b/assets/gitea/img/svg/octicon-bold.svg
deleted file mode 100644
index ea25459..0000000
--- a/assets/gitea/img/svg/octicon-bold.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-book.svg b/assets/gitea/img/svg/octicon-book.svg
deleted file mode 100644
index 3b58ec1..0000000
--- a/assets/gitea/img/svg/octicon-book.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-bookmark-slash.svg b/assets/gitea/img/svg/octicon-bookmark-slash.svg
deleted file mode 100644
index 781ae92..0000000
--- a/assets/gitea/img/svg/octicon-bookmark-slash.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-bookmark.svg b/assets/gitea/img/svg/octicon-bookmark.svg
deleted file mode 100644
index 5b25ef6..0000000
--- a/assets/gitea/img/svg/octicon-bookmark.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-briefcase.svg b/assets/gitea/img/svg/octicon-briefcase.svg
deleted file mode 100644
index 3293cc8..0000000
--- a/assets/gitea/img/svg/octicon-briefcase.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-broadcast.svg b/assets/gitea/img/svg/octicon-broadcast.svg
deleted file mode 100644
index e8c9f6d..0000000
--- a/assets/gitea/img/svg/octicon-broadcast.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-browser.svg b/assets/gitea/img/svg/octicon-browser.svg
deleted file mode 100644
index c1399fa..0000000
--- a/assets/gitea/img/svg/octicon-browser.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-bug.svg b/assets/gitea/img/svg/octicon-bug.svg
deleted file mode 100644
index 20a0904..0000000
--- a/assets/gitea/img/svg/octicon-bug.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-cache.svg b/assets/gitea/img/svg/octicon-cache.svg
deleted file mode 100644
index 5b8a792..0000000
--- a/assets/gitea/img/svg/octicon-cache.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-calendar.svg b/assets/gitea/img/svg/octicon-calendar.svg
deleted file mode 100644
index 55fd2f4..0000000
--- a/assets/gitea/img/svg/octicon-calendar.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-check-circle-fill.svg b/assets/gitea/img/svg/octicon-check-circle-fill.svg
deleted file mode 100644
index 8840d55..0000000
--- a/assets/gitea/img/svg/octicon-check-circle-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-check-circle.svg b/assets/gitea/img/svg/octicon-check-circle.svg
deleted file mode 100644
index 63ff6d2..0000000
--- a/assets/gitea/img/svg/octicon-check-circle.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-check.svg b/assets/gitea/img/svg/octicon-check.svg
deleted file mode 100644
index b76500b..0000000
--- a/assets/gitea/img/svg/octicon-check.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-checkbox.svg b/assets/gitea/img/svg/octicon-checkbox.svg
deleted file mode 100644
index b9711c5..0000000
--- a/assets/gitea/img/svg/octicon-checkbox.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-checklist.svg b/assets/gitea/img/svg/octicon-checklist.svg
deleted file mode 100644
index 172f13a..0000000
--- a/assets/gitea/img/svg/octicon-checklist.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-chevron-down.svg b/assets/gitea/img/svg/octicon-chevron-down.svg
deleted file mode 100644
index 824e476..0000000
--- a/assets/gitea/img/svg/octicon-chevron-down.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-chevron-left.svg b/assets/gitea/img/svg/octicon-chevron-left.svg
deleted file mode 100644
index ec2e25a..0000000
--- a/assets/gitea/img/svg/octicon-chevron-left.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-chevron-right.svg b/assets/gitea/img/svg/octicon-chevron-right.svg
deleted file mode 100644
index 4a57515..0000000
--- a/assets/gitea/img/svg/octicon-chevron-right.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-chevron-up.svg b/assets/gitea/img/svg/octicon-chevron-up.svg
deleted file mode 100644
index 4dac4b5..0000000
--- a/assets/gitea/img/svg/octicon-chevron-up.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-circle-slash.svg b/assets/gitea/img/svg/octicon-circle-slash.svg
deleted file mode 100644
index fbc3865..0000000
--- a/assets/gitea/img/svg/octicon-circle-slash.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-circle.svg b/assets/gitea/img/svg/octicon-circle.svg
deleted file mode 100644
index c2fa88b..0000000
--- a/assets/gitea/img/svg/octicon-circle.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-clock-fill.svg b/assets/gitea/img/svg/octicon-clock-fill.svg
deleted file mode 100644
index 423e5fd..0000000
--- a/assets/gitea/img/svg/octicon-clock-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-clock.svg b/assets/gitea/img/svg/octicon-clock.svg
deleted file mode 100644
index 186f6fb..0000000
--- a/assets/gitea/img/svg/octicon-clock.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-cloud-offline.svg b/assets/gitea/img/svg/octicon-cloud-offline.svg
deleted file mode 100644
index a4c3091..0000000
--- a/assets/gitea/img/svg/octicon-cloud-offline.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-cloud.svg b/assets/gitea/img/svg/octicon-cloud.svg
deleted file mode 100644
index 38b6a76..0000000
--- a/assets/gitea/img/svg/octicon-cloud.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-code-of-conduct.svg b/assets/gitea/img/svg/octicon-code-of-conduct.svg
deleted file mode 100644
index 20d4152..0000000
--- a/assets/gitea/img/svg/octicon-code-of-conduct.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-code-review.svg b/assets/gitea/img/svg/octicon-code-review.svg
deleted file mode 100644
index 2ba5e12..0000000
--- a/assets/gitea/img/svg/octicon-code-review.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-code-square.svg b/assets/gitea/img/svg/octicon-code-square.svg
deleted file mode 100644
index 8dadc44..0000000
--- a/assets/gitea/img/svg/octicon-code-square.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-code.svg b/assets/gitea/img/svg/octicon-code.svg
deleted file mode 100644
index a18c3b6..0000000
--- a/assets/gitea/img/svg/octicon-code.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-codescan-checkmark.svg b/assets/gitea/img/svg/octicon-codescan-checkmark.svg
deleted file mode 100644
index e81d4e9..0000000
--- a/assets/gitea/img/svg/octicon-codescan-checkmark.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-codescan.svg b/assets/gitea/img/svg/octicon-codescan.svg
deleted file mode 100644
index c03a0e5..0000000
--- a/assets/gitea/img/svg/octicon-codescan.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-codespaces.svg b/assets/gitea/img/svg/octicon-codespaces.svg
deleted file mode 100644
index 30a3890..0000000
--- a/assets/gitea/img/svg/octicon-codespaces.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-columns.svg b/assets/gitea/img/svg/octicon-columns.svg
deleted file mode 100644
index a88b807..0000000
--- a/assets/gitea/img/svg/octicon-columns.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-command-palette.svg b/assets/gitea/img/svg/octicon-command-palette.svg
deleted file mode 100644
index 6c85281..0000000
--- a/assets/gitea/img/svg/octicon-command-palette.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-comment-discussion.svg b/assets/gitea/img/svg/octicon-comment-discussion.svg
deleted file mode 100644
index 2a2728d..0000000
--- a/assets/gitea/img/svg/octicon-comment-discussion.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-comment.svg b/assets/gitea/img/svg/octicon-comment.svg
deleted file mode 100644
index 916d808..0000000
--- a/assets/gitea/img/svg/octicon-comment.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-container.svg b/assets/gitea/img/svg/octicon-container.svg
deleted file mode 100644
index c8eeeb1..0000000
--- a/assets/gitea/img/svg/octicon-container.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-copilot-error.svg b/assets/gitea/img/svg/octicon-copilot-error.svg
deleted file mode 100644
index d213328..0000000
--- a/assets/gitea/img/svg/octicon-copilot-error.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-copilot-warning.svg b/assets/gitea/img/svg/octicon-copilot-warning.svg
deleted file mode 100644
index af5fa66..0000000
--- a/assets/gitea/img/svg/octicon-copilot-warning.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-copilot.svg b/assets/gitea/img/svg/octicon-copilot.svg
deleted file mode 100644
index c23f454..0000000
--- a/assets/gitea/img/svg/octicon-copilot.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-copy.svg b/assets/gitea/img/svg/octicon-copy.svg
deleted file mode 100644
index a372c5b..0000000
--- a/assets/gitea/img/svg/octicon-copy.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-cpu.svg b/assets/gitea/img/svg/octicon-cpu.svg
deleted file mode 100644
index 753b9b5..0000000
--- a/assets/gitea/img/svg/octicon-cpu.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-credit-card.svg b/assets/gitea/img/svg/octicon-credit-card.svg
deleted file mode 100644
index 94c8f15..0000000
--- a/assets/gitea/img/svg/octicon-credit-card.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-cross-reference.svg b/assets/gitea/img/svg/octicon-cross-reference.svg
deleted file mode 100644
index 80b122b..0000000
--- a/assets/gitea/img/svg/octicon-cross-reference.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-dash.svg b/assets/gitea/img/svg/octicon-dash.svg
deleted file mode 100644
index 39ebd0d..0000000
--- a/assets/gitea/img/svg/octicon-dash.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-database.svg b/assets/gitea/img/svg/octicon-database.svg
deleted file mode 100644
index cbc9749..0000000
--- a/assets/gitea/img/svg/octicon-database.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-dependabot.svg b/assets/gitea/img/svg/octicon-dependabot.svg
deleted file mode 100644
index 250d10c..0000000
--- a/assets/gitea/img/svg/octicon-dependabot.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-desktop-download.svg b/assets/gitea/img/svg/octicon-desktop-download.svg
deleted file mode 100644
index 4ddaa13..0000000
--- a/assets/gitea/img/svg/octicon-desktop-download.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-device-camera-video.svg b/assets/gitea/img/svg/octicon-device-camera-video.svg
deleted file mode 100644
index 4e7e1e7..0000000
--- a/assets/gitea/img/svg/octicon-device-camera-video.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-device-camera.svg b/assets/gitea/img/svg/octicon-device-camera.svg
deleted file mode 100644
index bf4de4a..0000000
--- a/assets/gitea/img/svg/octicon-device-camera.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-device-desktop.svg b/assets/gitea/img/svg/octicon-device-desktop.svg
deleted file mode 100644
index 4a61836..0000000
--- a/assets/gitea/img/svg/octicon-device-desktop.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-device-mobile.svg b/assets/gitea/img/svg/octicon-device-mobile.svg
deleted file mode 100644
index cf247e2..0000000
--- a/assets/gitea/img/svg/octicon-device-mobile.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-devices.svg b/assets/gitea/img/svg/octicon-devices.svg
deleted file mode 100644
index 84d2a88..0000000
--- a/assets/gitea/img/svg/octicon-devices.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-diamond.svg b/assets/gitea/img/svg/octicon-diamond.svg
deleted file mode 100644
index 82d0bcb..0000000
--- a/assets/gitea/img/svg/octicon-diamond.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-diff-added.svg b/assets/gitea/img/svg/octicon-diff-added.svg
deleted file mode 100644
index 276d162..0000000
--- a/assets/gitea/img/svg/octicon-diff-added.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-diff-ignored.svg b/assets/gitea/img/svg/octicon-diff-ignored.svg
deleted file mode 100644
index 6949409..0000000
--- a/assets/gitea/img/svg/octicon-diff-ignored.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-diff-modified.svg b/assets/gitea/img/svg/octicon-diff-modified.svg
deleted file mode 100644
index 1c0d729..0000000
--- a/assets/gitea/img/svg/octicon-diff-modified.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-diff-removed.svg b/assets/gitea/img/svg/octicon-diff-removed.svg
deleted file mode 100644
index d366a10..0000000
--- a/assets/gitea/img/svg/octicon-diff-removed.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-diff-renamed.svg b/assets/gitea/img/svg/octicon-diff-renamed.svg
deleted file mode 100644
index f07999a..0000000
--- a/assets/gitea/img/svg/octicon-diff-renamed.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-diff.svg b/assets/gitea/img/svg/octicon-diff.svg
deleted file mode 100644
index 4714b0f..0000000
--- a/assets/gitea/img/svg/octicon-diff.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-discussion-closed.svg b/assets/gitea/img/svg/octicon-discussion-closed.svg
deleted file mode 100644
index d97598d..0000000
--- a/assets/gitea/img/svg/octicon-discussion-closed.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-discussion-duplicate.svg b/assets/gitea/img/svg/octicon-discussion-duplicate.svg
deleted file mode 100644
index 01fd664..0000000
--- a/assets/gitea/img/svg/octicon-discussion-duplicate.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-discussion-outdated.svg b/assets/gitea/img/svg/octicon-discussion-outdated.svg
deleted file mode 100644
index 515e63a..0000000
--- a/assets/gitea/img/svg/octicon-discussion-outdated.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-dot-fill.svg b/assets/gitea/img/svg/octicon-dot-fill.svg
deleted file mode 100644
index 17db30b..0000000
--- a/assets/gitea/img/svg/octicon-dot-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-dot.svg b/assets/gitea/img/svg/octicon-dot.svg
deleted file mode 100644
index fe03e3d..0000000
--- a/assets/gitea/img/svg/octicon-dot.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-download.svg b/assets/gitea/img/svg/octicon-download.svg
deleted file mode 100644
index 8058419..0000000
--- a/assets/gitea/img/svg/octicon-download.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-duplicate.svg b/assets/gitea/img/svg/octicon-duplicate.svg
deleted file mode 100644
index 289ac59..0000000
--- a/assets/gitea/img/svg/octicon-duplicate.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-ellipsis.svg b/assets/gitea/img/svg/octicon-ellipsis.svg
deleted file mode 100644
index 152e6eb..0000000
--- a/assets/gitea/img/svg/octicon-ellipsis.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-eye-closed.svg b/assets/gitea/img/svg/octicon-eye-closed.svg
deleted file mode 100644
index 3b49386..0000000
--- a/assets/gitea/img/svg/octicon-eye-closed.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-eye.svg b/assets/gitea/img/svg/octicon-eye.svg
deleted file mode 100644
index c0b3648..0000000
--- a/assets/gitea/img/svg/octicon-eye.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-discussion.svg b/assets/gitea/img/svg/octicon-feed-discussion.svg
deleted file mode 100644
index e8ccfff..0000000
--- a/assets/gitea/img/svg/octicon-feed-discussion.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-forked.svg b/assets/gitea/img/svg/octicon-feed-forked.svg
deleted file mode 100644
index 65b0eb1..0000000
--- a/assets/gitea/img/svg/octicon-feed-forked.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-heart.svg b/assets/gitea/img/svg/octicon-feed-heart.svg
deleted file mode 100644
index f2d620d..0000000
--- a/assets/gitea/img/svg/octicon-feed-heart.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-issue-closed.svg b/assets/gitea/img/svg/octicon-feed-issue-closed.svg
deleted file mode 100644
index 9cd3127..0000000
--- a/assets/gitea/img/svg/octicon-feed-issue-closed.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-issue-draft.svg b/assets/gitea/img/svg/octicon-feed-issue-draft.svg
deleted file mode 100644
index 091a591..0000000
--- a/assets/gitea/img/svg/octicon-feed-issue-draft.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-issue-open.svg b/assets/gitea/img/svg/octicon-feed-issue-open.svg
deleted file mode 100644
index 6d89898..0000000
--- a/assets/gitea/img/svg/octicon-feed-issue-open.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-issue-reopen.svg b/assets/gitea/img/svg/octicon-feed-issue-reopen.svg
deleted file mode 100644
index c82d5b0..0000000
--- a/assets/gitea/img/svg/octicon-feed-issue-reopen.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-merged.svg b/assets/gitea/img/svg/octicon-feed-merged.svg
deleted file mode 100644
index 2984bef..0000000
--- a/assets/gitea/img/svg/octicon-feed-merged.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-person.svg b/assets/gitea/img/svg/octicon-feed-person.svg
deleted file mode 100644
index 0854866..0000000
--- a/assets/gitea/img/svg/octicon-feed-person.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-plus.svg b/assets/gitea/img/svg/octicon-feed-plus.svg
deleted file mode 100644
index 6d0286e..0000000
--- a/assets/gitea/img/svg/octicon-feed-plus.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-public.svg b/assets/gitea/img/svg/octicon-feed-public.svg
deleted file mode 100644
index 926f7fe..0000000
--- a/assets/gitea/img/svg/octicon-feed-public.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-pull-request-closed.svg b/assets/gitea/img/svg/octicon-feed-pull-request-closed.svg
deleted file mode 100644
index b594acd..0000000
--- a/assets/gitea/img/svg/octicon-feed-pull-request-closed.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-pull-request-draft.svg b/assets/gitea/img/svg/octicon-feed-pull-request-draft.svg
deleted file mode 100644
index 1ae02e6..0000000
--- a/assets/gitea/img/svg/octicon-feed-pull-request-draft.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-pull-request-open.svg b/assets/gitea/img/svg/octicon-feed-pull-request-open.svg
deleted file mode 100644
index d1349c2..0000000
--- a/assets/gitea/img/svg/octicon-feed-pull-request-open.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-repo.svg b/assets/gitea/img/svg/octicon-feed-repo.svg
deleted file mode 100644
index fe099c5..0000000
--- a/assets/gitea/img/svg/octicon-feed-repo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-rocket.svg b/assets/gitea/img/svg/octicon-feed-rocket.svg
deleted file mode 100644
index 48587a1..0000000
--- a/assets/gitea/img/svg/octicon-feed-rocket.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-star.svg b/assets/gitea/img/svg/octicon-feed-star.svg
deleted file mode 100644
index 3c3a6aa..0000000
--- a/assets/gitea/img/svg/octicon-feed-star.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-tag.svg b/assets/gitea/img/svg/octicon-feed-tag.svg
deleted file mode 100644
index d63dd74..0000000
--- a/assets/gitea/img/svg/octicon-feed-tag.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-feed-trophy.svg b/assets/gitea/img/svg/octicon-feed-trophy.svg
deleted file mode 100644
index ba06c3e..0000000
--- a/assets/gitea/img/svg/octicon-feed-trophy.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-added.svg b/assets/gitea/img/svg/octicon-file-added.svg
deleted file mode 100644
index a8cd80f..0000000
--- a/assets/gitea/img/svg/octicon-file-added.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-badge.svg b/assets/gitea/img/svg/octicon-file-badge.svg
deleted file mode 100644
index 5f0a742..0000000
--- a/assets/gitea/img/svg/octicon-file-badge.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-binary.svg b/assets/gitea/img/svg/octicon-file-binary.svg
deleted file mode 100644
index 492e7d5..0000000
--- a/assets/gitea/img/svg/octicon-file-binary.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-code.svg b/assets/gitea/img/svg/octicon-file-code.svg
deleted file mode 100644
index 66430e3..0000000
--- a/assets/gitea/img/svg/octicon-file-code.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-diff.svg b/assets/gitea/img/svg/octicon-file-diff.svg
deleted file mode 100644
index a58df3e..0000000
--- a/assets/gitea/img/svg/octicon-file-diff.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-directory-fill.svg b/assets/gitea/img/svg/octicon-file-directory-fill.svg
deleted file mode 100644
index 800e6ba..0000000
--- a/assets/gitea/img/svg/octicon-file-directory-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-directory-open-fill.svg b/assets/gitea/img/svg/octicon-file-directory-open-fill.svg
deleted file mode 100644
index 0d1bac3..0000000
--- a/assets/gitea/img/svg/octicon-file-directory-open-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-directory-symlink.svg b/assets/gitea/img/svg/octicon-file-directory-symlink.svg
deleted file mode 100644
index 8a6142b..0000000
--- a/assets/gitea/img/svg/octicon-file-directory-symlink.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-directory.svg b/assets/gitea/img/svg/octicon-file-directory.svg
deleted file mode 100644
index 2376e5a..0000000
--- a/assets/gitea/img/svg/octicon-file-directory.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-moved.svg b/assets/gitea/img/svg/octicon-file-moved.svg
deleted file mode 100644
index 03735b0..0000000
--- a/assets/gitea/img/svg/octicon-file-moved.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-removed.svg b/assets/gitea/img/svg/octicon-file-removed.svg
deleted file mode 100644
index 08158af..0000000
--- a/assets/gitea/img/svg/octicon-file-removed.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-submodule.svg b/assets/gitea/img/svg/octicon-file-submodule.svg
deleted file mode 100644
index 8eab90f..0000000
--- a/assets/gitea/img/svg/octicon-file-submodule.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-symlink-file.svg b/assets/gitea/img/svg/octicon-file-symlink-file.svg
deleted file mode 100644
index 21b8cbf..0000000
--- a/assets/gitea/img/svg/octicon-file-symlink-file.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file-zip.svg b/assets/gitea/img/svg/octicon-file-zip.svg
deleted file mode 100644
index 3adddf0..0000000
--- a/assets/gitea/img/svg/octicon-file-zip.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-file.svg b/assets/gitea/img/svg/octicon-file.svg
deleted file mode 100644
index faf92c5..0000000
--- a/assets/gitea/img/svg/octicon-file.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-filter-remove.svg b/assets/gitea/img/svg/octicon-filter-remove.svg
deleted file mode 100644
index c100106..0000000
--- a/assets/gitea/img/svg/octicon-filter-remove.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-filter.svg b/assets/gitea/img/svg/octicon-filter.svg
deleted file mode 100644
index 63cd16e..0000000
--- a/assets/gitea/img/svg/octicon-filter.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-fiscal-host.svg b/assets/gitea/img/svg/octicon-fiscal-host.svg
deleted file mode 100644
index 877850a..0000000
--- a/assets/gitea/img/svg/octicon-fiscal-host.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-flame.svg b/assets/gitea/img/svg/octicon-flame.svg
deleted file mode 100644
index 0db84ac..0000000
--- a/assets/gitea/img/svg/octicon-flame.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-fold-down.svg b/assets/gitea/img/svg/octicon-fold-down.svg
deleted file mode 100644
index 957a95f..0000000
--- a/assets/gitea/img/svg/octicon-fold-down.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-fold-up.svg b/assets/gitea/img/svg/octicon-fold-up.svg
deleted file mode 100644
index c139cf8..0000000
--- a/assets/gitea/img/svg/octicon-fold-up.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-fold.svg b/assets/gitea/img/svg/octicon-fold.svg
deleted file mode 100644
index 5657e93..0000000
--- a/assets/gitea/img/svg/octicon-fold.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-gear.svg b/assets/gitea/img/svg/octicon-gear.svg
deleted file mode 100644
index be6eee1..0000000
--- a/assets/gitea/img/svg/octicon-gear.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-gift.svg b/assets/gitea/img/svg/octicon-gift.svg
deleted file mode 100644
index 4a6ba30..0000000
--- a/assets/gitea/img/svg/octicon-gift.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-git-branch.svg b/assets/gitea/img/svg/octicon-git-branch.svg
deleted file mode 100644
index c7116ad..0000000
--- a/assets/gitea/img/svg/octicon-git-branch.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-git-commit.svg b/assets/gitea/img/svg/octicon-git-commit.svg
deleted file mode 100644
index 6c2ac50..0000000
--- a/assets/gitea/img/svg/octicon-git-commit.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-git-compare.svg b/assets/gitea/img/svg/octicon-git-compare.svg
deleted file mode 100644
index 6bf4559..0000000
--- a/assets/gitea/img/svg/octicon-git-compare.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-git-merge-queue.svg b/assets/gitea/img/svg/octicon-git-merge-queue.svg
deleted file mode 100644
index bfe39b3..0000000
--- a/assets/gitea/img/svg/octicon-git-merge-queue.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-git-merge.svg b/assets/gitea/img/svg/octicon-git-merge.svg
deleted file mode 100644
index 1729961..0000000
--- a/assets/gitea/img/svg/octicon-git-merge.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-git-pull-request-closed.svg b/assets/gitea/img/svg/octicon-git-pull-request-closed.svg
deleted file mode 100644
index 628f9fe..0000000
--- a/assets/gitea/img/svg/octicon-git-pull-request-closed.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-git-pull-request-draft.svg b/assets/gitea/img/svg/octicon-git-pull-request-draft.svg
deleted file mode 100644
index 74d9af9..0000000
--- a/assets/gitea/img/svg/octicon-git-pull-request-draft.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-git-pull-request.svg b/assets/gitea/img/svg/octicon-git-pull-request.svg
deleted file mode 100644
index 2277666..0000000
--- a/assets/gitea/img/svg/octicon-git-pull-request.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-globe.svg b/assets/gitea/img/svg/octicon-globe.svg
deleted file mode 100644
index 60ca5b5..0000000
--- a/assets/gitea/img/svg/octicon-globe.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-goal.svg b/assets/gitea/img/svg/octicon-goal.svg
deleted file mode 100644
index dd36a51..0000000
--- a/assets/gitea/img/svg/octicon-goal.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-grabber.svg b/assets/gitea/img/svg/octicon-grabber.svg
deleted file mode 100644
index 9239188..0000000
--- a/assets/gitea/img/svg/octicon-grabber.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-graph.svg b/assets/gitea/img/svg/octicon-graph.svg
deleted file mode 100644
index 393faf9..0000000
--- a/assets/gitea/img/svg/octicon-graph.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-hash.svg b/assets/gitea/img/svg/octicon-hash.svg
deleted file mode 100644
index 9920504..0000000
--- a/assets/gitea/img/svg/octicon-hash.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-heading.svg b/assets/gitea/img/svg/octicon-heading.svg
deleted file mode 100644
index 597e794..0000000
--- a/assets/gitea/img/svg/octicon-heading.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-heart-fill.svg b/assets/gitea/img/svg/octicon-heart-fill.svg
deleted file mode 100644
index 1f23ef4..0000000
--- a/assets/gitea/img/svg/octicon-heart-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-heart.svg b/assets/gitea/img/svg/octicon-heart.svg
deleted file mode 100644
index 3980b80..0000000
--- a/assets/gitea/img/svg/octicon-heart.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-history.svg b/assets/gitea/img/svg/octicon-history.svg
deleted file mode 100644
index fb835dc..0000000
--- a/assets/gitea/img/svg/octicon-history.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-home.svg b/assets/gitea/img/svg/octicon-home.svg
deleted file mode 100644
index 2586237..0000000
--- a/assets/gitea/img/svg/octicon-home.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-horizontal-rule.svg b/assets/gitea/img/svg/octicon-horizontal-rule.svg
deleted file mode 100644
index 978874b..0000000
--- a/assets/gitea/img/svg/octicon-horizontal-rule.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-hourglass.svg b/assets/gitea/img/svg/octicon-hourglass.svg
deleted file mode 100644
index 8f84421..0000000
--- a/assets/gitea/img/svg/octicon-hourglass.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-hubot.svg b/assets/gitea/img/svg/octicon-hubot.svg
deleted file mode 100644
index 0042389..0000000
--- a/assets/gitea/img/svg/octicon-hubot.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-id-badge.svg b/assets/gitea/img/svg/octicon-id-badge.svg
deleted file mode 100644
index ed3acea..0000000
--- a/assets/gitea/img/svg/octicon-id-badge.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-image.svg b/assets/gitea/img/svg/octicon-image.svg
deleted file mode 100644
index a3ce77a..0000000
--- a/assets/gitea/img/svg/octicon-image.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-inbox.svg b/assets/gitea/img/svg/octicon-inbox.svg
deleted file mode 100644
index 3d65320..0000000
--- a/assets/gitea/img/svg/octicon-inbox.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-infinity.svg b/assets/gitea/img/svg/octicon-infinity.svg
deleted file mode 100644
index 2edd1ef..0000000
--- a/assets/gitea/img/svg/octicon-infinity.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-info.svg b/assets/gitea/img/svg/octicon-info.svg
deleted file mode 100644
index de6616b..0000000
--- a/assets/gitea/img/svg/octicon-info.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-issue-closed.svg b/assets/gitea/img/svg/octicon-issue-closed.svg
deleted file mode 100644
index 1d0aa0c..0000000
--- a/assets/gitea/img/svg/octicon-issue-closed.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-issue-draft.svg b/assets/gitea/img/svg/octicon-issue-draft.svg
deleted file mode 100644
index d02ddd3..0000000
--- a/assets/gitea/img/svg/octicon-issue-draft.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-issue-opened.svg b/assets/gitea/img/svg/octicon-issue-opened.svg
deleted file mode 100644
index fb0752d..0000000
--- a/assets/gitea/img/svg/octicon-issue-opened.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-issue-reopened.svg b/assets/gitea/img/svg/octicon-issue-reopened.svg
deleted file mode 100644
index cd72fac..0000000
--- a/assets/gitea/img/svg/octicon-issue-reopened.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-issue-tracked-by.svg b/assets/gitea/img/svg/octicon-issue-tracked-by.svg
deleted file mode 100644
index 3cabd78..0000000
--- a/assets/gitea/img/svg/octicon-issue-tracked-by.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-issue-tracks.svg b/assets/gitea/img/svg/octicon-issue-tracks.svg
deleted file mode 100644
index 7eb86e5..0000000
--- a/assets/gitea/img/svg/octicon-issue-tracks.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-italic.svg b/assets/gitea/img/svg/octicon-italic.svg
deleted file mode 100644
index 2f71fcc..0000000
--- a/assets/gitea/img/svg/octicon-italic.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-iterations.svg b/assets/gitea/img/svg/octicon-iterations.svg
deleted file mode 100644
index 33e98c1..0000000
--- a/assets/gitea/img/svg/octicon-iterations.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-kebab-horizontal.svg b/assets/gitea/img/svg/octicon-kebab-horizontal.svg
deleted file mode 100644
index d744abf..0000000
--- a/assets/gitea/img/svg/octicon-kebab-horizontal.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-key-asterisk.svg b/assets/gitea/img/svg/octicon-key-asterisk.svg
deleted file mode 100644
index 8b57e47..0000000
--- a/assets/gitea/img/svg/octicon-key-asterisk.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-key.svg b/assets/gitea/img/svg/octicon-key.svg
deleted file mode 100644
index 6705b71..0000000
--- a/assets/gitea/img/svg/octicon-key.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-law.svg b/assets/gitea/img/svg/octicon-law.svg
deleted file mode 100644
index 841798e..0000000
--- a/assets/gitea/img/svg/octicon-law.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-light-bulb.svg b/assets/gitea/img/svg/octicon-light-bulb.svg
deleted file mode 100644
index c438ecf..0000000
--- a/assets/gitea/img/svg/octicon-light-bulb.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-link-external.svg b/assets/gitea/img/svg/octicon-link-external.svg
deleted file mode 100644
index 6d7750b..0000000
--- a/assets/gitea/img/svg/octicon-link-external.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-link.svg b/assets/gitea/img/svg/octicon-link.svg
deleted file mode 100644
index 9269974..0000000
--- a/assets/gitea/img/svg/octicon-link.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-list-ordered.svg b/assets/gitea/img/svg/octicon-list-ordered.svg
deleted file mode 100644
index 0040708..0000000
--- a/assets/gitea/img/svg/octicon-list-ordered.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-list-unordered.svg b/assets/gitea/img/svg/octicon-list-unordered.svg
deleted file mode 100644
index 1976bd8..0000000
--- a/assets/gitea/img/svg/octicon-list-unordered.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-location.svg b/assets/gitea/img/svg/octicon-location.svg
deleted file mode 100644
index 7f91acc..0000000
--- a/assets/gitea/img/svg/octicon-location.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-lock.svg b/assets/gitea/img/svg/octicon-lock.svg
deleted file mode 100644
index b737b56..0000000
--- a/assets/gitea/img/svg/octicon-lock.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-log.svg b/assets/gitea/img/svg/octicon-log.svg
deleted file mode 100644
index 0f71230..0000000
--- a/assets/gitea/img/svg/octicon-log.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-logo-gist.svg b/assets/gitea/img/svg/octicon-logo-gist.svg
deleted file mode 100644
index 8621f14..0000000
--- a/assets/gitea/img/svg/octicon-logo-gist.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-logo-github.svg b/assets/gitea/img/svg/octicon-logo-github.svg
deleted file mode 100644
index 02d92c9..0000000
--- a/assets/gitea/img/svg/octicon-logo-github.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-mail.svg b/assets/gitea/img/svg/octicon-mail.svg
deleted file mode 100644
index 750b742..0000000
--- a/assets/gitea/img/svg/octicon-mail.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-mark-github.svg b/assets/gitea/img/svg/octicon-mark-github.svg
deleted file mode 100644
index 9381053..0000000
--- a/assets/gitea/img/svg/octicon-mark-github.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-markdown.svg b/assets/gitea/img/svg/octicon-markdown.svg
deleted file mode 100644
index 6e81e9a..0000000
--- a/assets/gitea/img/svg/octicon-markdown.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-megaphone.svg b/assets/gitea/img/svg/octicon-megaphone.svg
deleted file mode 100644
index 178b550..0000000
--- a/assets/gitea/img/svg/octicon-megaphone.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-mention.svg b/assets/gitea/img/svg/octicon-mention.svg
deleted file mode 100644
index 75b414e..0000000
--- a/assets/gitea/img/svg/octicon-mention.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-meter.svg b/assets/gitea/img/svg/octicon-meter.svg
deleted file mode 100644
index 38bd456..0000000
--- a/assets/gitea/img/svg/octicon-meter.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-milestone.svg b/assets/gitea/img/svg/octicon-milestone.svg
deleted file mode 100644
index 19667b6..0000000
--- a/assets/gitea/img/svg/octicon-milestone.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-mirror.svg b/assets/gitea/img/svg/octicon-mirror.svg
deleted file mode 100644
index d9c67fc..0000000
--- a/assets/gitea/img/svg/octicon-mirror.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-moon.svg b/assets/gitea/img/svg/octicon-moon.svg
deleted file mode 100644
index 244544d..0000000
--- a/assets/gitea/img/svg/octicon-moon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-mortar-board.svg b/assets/gitea/img/svg/octicon-mortar-board.svg
deleted file mode 100644
index 8a9f954..0000000
--- a/assets/gitea/img/svg/octicon-mortar-board.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-move-to-bottom.svg b/assets/gitea/img/svg/octicon-move-to-bottom.svg
deleted file mode 100644
index 3f2a183..0000000
--- a/assets/gitea/img/svg/octicon-move-to-bottom.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-move-to-end.svg b/assets/gitea/img/svg/octicon-move-to-end.svg
deleted file mode 100644
index ef3e60b..0000000
--- a/assets/gitea/img/svg/octicon-move-to-end.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-move-to-start.svg b/assets/gitea/img/svg/octicon-move-to-start.svg
deleted file mode 100644
index 2dc1df7..0000000
--- a/assets/gitea/img/svg/octicon-move-to-start.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-move-to-top.svg b/assets/gitea/img/svg/octicon-move-to-top.svg
deleted file mode 100644
index 109515c..0000000
--- a/assets/gitea/img/svg/octicon-move-to-top.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-multi-select.svg b/assets/gitea/img/svg/octicon-multi-select.svg
deleted file mode 100644
index e079b24..0000000
--- a/assets/gitea/img/svg/octicon-multi-select.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-mute.svg b/assets/gitea/img/svg/octicon-mute.svg
deleted file mode 100644
index 2bb114f..0000000
--- a/assets/gitea/img/svg/octicon-mute.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-no-entry.svg b/assets/gitea/img/svg/octicon-no-entry.svg
deleted file mode 100644
index e7117cd..0000000
--- a/assets/gitea/img/svg/octicon-no-entry.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-north-star.svg b/assets/gitea/img/svg/octicon-north-star.svg
deleted file mode 100644
index 2fef718..0000000
--- a/assets/gitea/img/svg/octicon-north-star.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-note.svg b/assets/gitea/img/svg/octicon-note.svg
deleted file mode 100644
index 39e7e4e..0000000
--- a/assets/gitea/img/svg/octicon-note.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-number.svg b/assets/gitea/img/svg/octicon-number.svg
deleted file mode 100644
index 0a88de1..0000000
--- a/assets/gitea/img/svg/octicon-number.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-organization.svg b/assets/gitea/img/svg/octicon-organization.svg
deleted file mode 100644
index 0799b07..0000000
--- a/assets/gitea/img/svg/octicon-organization.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-package-dependencies.svg b/assets/gitea/img/svg/octicon-package-dependencies.svg
deleted file mode 100644
index 8cb5671..0000000
--- a/assets/gitea/img/svg/octicon-package-dependencies.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-package-dependents.svg b/assets/gitea/img/svg/octicon-package-dependents.svg
deleted file mode 100644
index 22dd4d1..0000000
--- a/assets/gitea/img/svg/octicon-package-dependents.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-package.svg b/assets/gitea/img/svg/octicon-package.svg
deleted file mode 100644
index 61b2225..0000000
--- a/assets/gitea/img/svg/octicon-package.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-paintbrush.svg b/assets/gitea/img/svg/octicon-paintbrush.svg
deleted file mode 100644
index d9ac076..0000000
--- a/assets/gitea/img/svg/octicon-paintbrush.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-paper-airplane.svg b/assets/gitea/img/svg/octicon-paper-airplane.svg
deleted file mode 100644
index 8e4a929..0000000
--- a/assets/gitea/img/svg/octicon-paper-airplane.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-paperclip.svg b/assets/gitea/img/svg/octicon-paperclip.svg
deleted file mode 100644
index de38702..0000000
--- a/assets/gitea/img/svg/octicon-paperclip.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-passkey-fill.svg b/assets/gitea/img/svg/octicon-passkey-fill.svg
deleted file mode 100644
index 98fcafb..0000000
--- a/assets/gitea/img/svg/octicon-passkey-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-paste.svg b/assets/gitea/img/svg/octicon-paste.svg
deleted file mode 100644
index 212c2b8..0000000
--- a/assets/gitea/img/svg/octicon-paste.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-pencil.svg b/assets/gitea/img/svg/octicon-pencil.svg
deleted file mode 100644
index f0f1f73..0000000
--- a/assets/gitea/img/svg/octicon-pencil.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-people.svg b/assets/gitea/img/svg/octicon-people.svg
deleted file mode 100644
index 9143c70..0000000
--- a/assets/gitea/img/svg/octicon-people.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-person-add.svg b/assets/gitea/img/svg/octicon-person-add.svg
deleted file mode 100644
index 4c95172..0000000
--- a/assets/gitea/img/svg/octicon-person-add.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-person-fill.svg b/assets/gitea/img/svg/octicon-person-fill.svg
deleted file mode 100644
index 4715c29..0000000
--- a/assets/gitea/img/svg/octicon-person-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-person.svg b/assets/gitea/img/svg/octicon-person.svg
deleted file mode 100644
index 2d12f02..0000000
--- a/assets/gitea/img/svg/octicon-person.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-pin-slash.svg b/assets/gitea/img/svg/octicon-pin-slash.svg
deleted file mode 100644
index adf7ed4..0000000
--- a/assets/gitea/img/svg/octicon-pin-slash.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-pin.svg b/assets/gitea/img/svg/octicon-pin.svg
deleted file mode 100644
index 49ac5af..0000000
--- a/assets/gitea/img/svg/octicon-pin.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-pivot-column.svg b/assets/gitea/img/svg/octicon-pivot-column.svg
deleted file mode 100644
index 795fde1..0000000
--- a/assets/gitea/img/svg/octicon-pivot-column.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-play.svg b/assets/gitea/img/svg/octicon-play.svg
deleted file mode 100644
index dca6572..0000000
--- a/assets/gitea/img/svg/octicon-play.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-plug.svg b/assets/gitea/img/svg/octicon-plug.svg
deleted file mode 100644
index 4caf972..0000000
--- a/assets/gitea/img/svg/octicon-plug.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-plus-circle.svg b/assets/gitea/img/svg/octicon-plus-circle.svg
deleted file mode 100644
index 71c5563..0000000
--- a/assets/gitea/img/svg/octicon-plus-circle.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-plus.svg b/assets/gitea/img/svg/octicon-plus.svg
deleted file mode 100644
index 1fd3743..0000000
--- a/assets/gitea/img/svg/octicon-plus.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-project-roadmap.svg b/assets/gitea/img/svg/octicon-project-roadmap.svg
deleted file mode 100644
index a6b15c1..0000000
--- a/assets/gitea/img/svg/octicon-project-roadmap.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-project-symlink.svg b/assets/gitea/img/svg/octicon-project-symlink.svg
deleted file mode 100644
index bc9104a..0000000
--- a/assets/gitea/img/svg/octicon-project-symlink.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-project-template.svg b/assets/gitea/img/svg/octicon-project-template.svg
deleted file mode 100644
index 31d4cc0..0000000
--- a/assets/gitea/img/svg/octicon-project-template.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-project.svg b/assets/gitea/img/svg/octicon-project.svg
deleted file mode 100644
index 9fb23c7..0000000
--- a/assets/gitea/img/svg/octicon-project.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-pulse.svg b/assets/gitea/img/svg/octicon-pulse.svg
deleted file mode 100644
index 2450ffe..0000000
--- a/assets/gitea/img/svg/octicon-pulse.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-question.svg b/assets/gitea/img/svg/octicon-question.svg
deleted file mode 100644
index 6d6a3f5..0000000
--- a/assets/gitea/img/svg/octicon-question.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-quote.svg b/assets/gitea/img/svg/octicon-quote.svg
deleted file mode 100644
index c3b02f4..0000000
--- a/assets/gitea/img/svg/octicon-quote.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-read.svg b/assets/gitea/img/svg/octicon-read.svg
deleted file mode 100644
index cd5ee20..0000000
--- a/assets/gitea/img/svg/octicon-read.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-redo.svg b/assets/gitea/img/svg/octicon-redo.svg
deleted file mode 100644
index a81a321..0000000
--- a/assets/gitea/img/svg/octicon-redo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-rel-file-path.svg b/assets/gitea/img/svg/octicon-rel-file-path.svg
deleted file mode 100644
index 45837c2..0000000
--- a/assets/gitea/img/svg/octicon-rel-file-path.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-reply.svg b/assets/gitea/img/svg/octicon-reply.svg
deleted file mode 100644
index 70e550e..0000000
--- a/assets/gitea/img/svg/octicon-reply.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-repo-clone.svg b/assets/gitea/img/svg/octicon-repo-clone.svg
deleted file mode 100644
index 67099d8..0000000
--- a/assets/gitea/img/svg/octicon-repo-clone.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-repo-deleted.svg b/assets/gitea/img/svg/octicon-repo-deleted.svg
deleted file mode 100644
index c79e3be..0000000
--- a/assets/gitea/img/svg/octicon-repo-deleted.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-repo-forked.svg b/assets/gitea/img/svg/octicon-repo-forked.svg
deleted file mode 100644
index a45bee6..0000000
--- a/assets/gitea/img/svg/octicon-repo-forked.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-repo-locked.svg b/assets/gitea/img/svg/octicon-repo-locked.svg
deleted file mode 100644
index c6def5b..0000000
--- a/assets/gitea/img/svg/octicon-repo-locked.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-repo-pull.svg b/assets/gitea/img/svg/octicon-repo-pull.svg
deleted file mode 100644
index 4f02f6f..0000000
--- a/assets/gitea/img/svg/octicon-repo-pull.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-repo-push.svg b/assets/gitea/img/svg/octicon-repo-push.svg
deleted file mode 100644
index 07bd762..0000000
--- a/assets/gitea/img/svg/octicon-repo-push.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-repo-template.svg b/assets/gitea/img/svg/octicon-repo-template.svg
deleted file mode 100644
index 45b7acf..0000000
--- a/assets/gitea/img/svg/octicon-repo-template.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-repo.svg b/assets/gitea/img/svg/octicon-repo.svg
deleted file mode 100644
index ace4a3c..0000000
--- a/assets/gitea/img/svg/octicon-repo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-report.svg b/assets/gitea/img/svg/octicon-report.svg
deleted file mode 100644
index e0cf565..0000000
--- a/assets/gitea/img/svg/octicon-report.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-rocket.svg b/assets/gitea/img/svg/octicon-rocket.svg
deleted file mode 100644
index 13395eb..0000000
--- a/assets/gitea/img/svg/octicon-rocket.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-rows.svg b/assets/gitea/img/svg/octicon-rows.svg
deleted file mode 100644
index 4596215..0000000
--- a/assets/gitea/img/svg/octicon-rows.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-rss.svg b/assets/gitea/img/svg/octicon-rss.svg
deleted file mode 100644
index 6b13033..0000000
--- a/assets/gitea/img/svg/octicon-rss.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-ruby.svg b/assets/gitea/img/svg/octicon-ruby.svg
deleted file mode 100644
index 3697948..0000000
--- a/assets/gitea/img/svg/octicon-ruby.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-screen-full.svg b/assets/gitea/img/svg/octicon-screen-full.svg
deleted file mode 100644
index 8074a22..0000000
--- a/assets/gitea/img/svg/octicon-screen-full.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-screen-normal.svg b/assets/gitea/img/svg/octicon-screen-normal.svg
deleted file mode 100644
index 98fe6a8..0000000
--- a/assets/gitea/img/svg/octicon-screen-normal.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-search.svg b/assets/gitea/img/svg/octicon-search.svg
deleted file mode 100644
index 5286c04..0000000
--- a/assets/gitea/img/svg/octicon-search.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-server.svg b/assets/gitea/img/svg/octicon-server.svg
deleted file mode 100644
index fd4e9be..0000000
--- a/assets/gitea/img/svg/octicon-server.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-share-android.svg b/assets/gitea/img/svg/octicon-share-android.svg
deleted file mode 100644
index 2e1cdcb..0000000
--- a/assets/gitea/img/svg/octicon-share-android.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-share.svg b/assets/gitea/img/svg/octicon-share.svg
deleted file mode 100644
index eb4dc00..0000000
--- a/assets/gitea/img/svg/octicon-share.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-shield-check.svg b/assets/gitea/img/svg/octicon-shield-check.svg
deleted file mode 100644
index 99fc924..0000000
--- a/assets/gitea/img/svg/octicon-shield-check.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-shield-lock.svg b/assets/gitea/img/svg/octicon-shield-lock.svg
deleted file mode 100644
index 2057bbc..0000000
--- a/assets/gitea/img/svg/octicon-shield-lock.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-shield-slash.svg b/assets/gitea/img/svg/octicon-shield-slash.svg
deleted file mode 100644
index 28a2b85..0000000
--- a/assets/gitea/img/svg/octicon-shield-slash.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-shield-x.svg b/assets/gitea/img/svg/octicon-shield-x.svg
deleted file mode 100644
index b0fff66..0000000
--- a/assets/gitea/img/svg/octicon-shield-x.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-shield.svg b/assets/gitea/img/svg/octicon-shield.svg
deleted file mode 100644
index 865238e..0000000
--- a/assets/gitea/img/svg/octicon-shield.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-sidebar-collapse.svg b/assets/gitea/img/svg/octicon-sidebar-collapse.svg
deleted file mode 100644
index 6885cd2..0000000
--- a/assets/gitea/img/svg/octicon-sidebar-collapse.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-sidebar-expand.svg b/assets/gitea/img/svg/octicon-sidebar-expand.svg
deleted file mode 100644
index 41e5c80..0000000
--- a/assets/gitea/img/svg/octicon-sidebar-expand.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-sign-in.svg b/assets/gitea/img/svg/octicon-sign-in.svg
deleted file mode 100644
index 308c118..0000000
--- a/assets/gitea/img/svg/octicon-sign-in.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-sign-out.svg b/assets/gitea/img/svg/octicon-sign-out.svg
deleted file mode 100644
index ac1c95f..0000000
--- a/assets/gitea/img/svg/octicon-sign-out.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-single-select.svg b/assets/gitea/img/svg/octicon-single-select.svg
deleted file mode 100644
index 55a1a93..0000000
--- a/assets/gitea/img/svg/octicon-single-select.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-skip-fill.svg b/assets/gitea/img/svg/octicon-skip-fill.svg
deleted file mode 100644
index 01a5cc8..0000000
--- a/assets/gitea/img/svg/octicon-skip-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-skip.svg b/assets/gitea/img/svg/octicon-skip.svg
deleted file mode 100644
index fe8d377..0000000
--- a/assets/gitea/img/svg/octicon-skip.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-sliders.svg b/assets/gitea/img/svg/octicon-sliders.svg
deleted file mode 100644
index 940a3ab..0000000
--- a/assets/gitea/img/svg/octicon-sliders.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-smiley.svg b/assets/gitea/img/svg/octicon-smiley.svg
deleted file mode 100644
index 11c9055..0000000
--- a/assets/gitea/img/svg/octicon-smiley.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-sort-asc.svg b/assets/gitea/img/svg/octicon-sort-asc.svg
deleted file mode 100644
index 76fe377..0000000
--- a/assets/gitea/img/svg/octicon-sort-asc.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-sort-desc.svg b/assets/gitea/img/svg/octicon-sort-desc.svg
deleted file mode 100644
index 1ae84a7..0000000
--- a/assets/gitea/img/svg/octicon-sort-desc.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-sparkle-fill.svg b/assets/gitea/img/svg/octicon-sparkle-fill.svg
deleted file mode 100644
index fafd3d8..0000000
--- a/assets/gitea/img/svg/octicon-sparkle-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-sponsor-tiers.svg b/assets/gitea/img/svg/octicon-sponsor-tiers.svg
deleted file mode 100644
index efe96cd..0000000
--- a/assets/gitea/img/svg/octicon-sponsor-tiers.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-square-fill.svg b/assets/gitea/img/svg/octicon-square-fill.svg
deleted file mode 100644
index 06d32b3..0000000
--- a/assets/gitea/img/svg/octicon-square-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-square.svg b/assets/gitea/img/svg/octicon-square.svg
deleted file mode 100644
index 846af69..0000000
--- a/assets/gitea/img/svg/octicon-square.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-squirrel.svg b/assets/gitea/img/svg/octicon-squirrel.svg
deleted file mode 100644
index 60b3ba5..0000000
--- a/assets/gitea/img/svg/octicon-squirrel.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-stack.svg b/assets/gitea/img/svg/octicon-stack.svg
deleted file mode 100644
index a86dbbe..0000000
--- a/assets/gitea/img/svg/octicon-stack.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-star-fill.svg b/assets/gitea/img/svg/octicon-star-fill.svg
deleted file mode 100644
index 174ae0c..0000000
--- a/assets/gitea/img/svg/octicon-star-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-star.svg b/assets/gitea/img/svg/octicon-star.svg
deleted file mode 100644
index 2001b8c..0000000
--- a/assets/gitea/img/svg/octicon-star.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-stop.svg b/assets/gitea/img/svg/octicon-stop.svg
deleted file mode 100644
index d85c7a3..0000000
--- a/assets/gitea/img/svg/octicon-stop.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-stopwatch.svg b/assets/gitea/img/svg/octicon-stopwatch.svg
deleted file mode 100644
index eeec8dc..0000000
--- a/assets/gitea/img/svg/octicon-stopwatch.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-strikethrough.svg b/assets/gitea/img/svg/octicon-strikethrough.svg
deleted file mode 100644
index 1a9c4a0..0000000
--- a/assets/gitea/img/svg/octicon-strikethrough.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-sun.svg b/assets/gitea/img/svg/octicon-sun.svg
deleted file mode 100644
index 07756fa..0000000
--- a/assets/gitea/img/svg/octicon-sun.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-sync.svg b/assets/gitea/img/svg/octicon-sync.svg
deleted file mode 100644
index 30917e1..0000000
--- a/assets/gitea/img/svg/octicon-sync.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-tab-external.svg b/assets/gitea/img/svg/octicon-tab-external.svg
deleted file mode 100644
index e1a979d..0000000
--- a/assets/gitea/img/svg/octicon-tab-external.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-table.svg b/assets/gitea/img/svg/octicon-table.svg
deleted file mode 100644
index c4bdbc2..0000000
--- a/assets/gitea/img/svg/octicon-table.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-tag.svg b/assets/gitea/img/svg/octicon-tag.svg
deleted file mode 100644
index 0de0f6b..0000000
--- a/assets/gitea/img/svg/octicon-tag.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-tasklist.svg b/assets/gitea/img/svg/octicon-tasklist.svg
deleted file mode 100644
index b1067ae..0000000
--- a/assets/gitea/img/svg/octicon-tasklist.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-telescope-fill.svg b/assets/gitea/img/svg/octicon-telescope-fill.svg
deleted file mode 100644
index 4debe30..0000000
--- a/assets/gitea/img/svg/octicon-telescope-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-telescope.svg b/assets/gitea/img/svg/octicon-telescope.svg
deleted file mode 100644
index 17e7911..0000000
--- a/assets/gitea/img/svg/octicon-telescope.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-terminal.svg b/assets/gitea/img/svg/octicon-terminal.svg
deleted file mode 100644
index e6349af..0000000
--- a/assets/gitea/img/svg/octicon-terminal.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-three-bars.svg b/assets/gitea/img/svg/octicon-three-bars.svg
deleted file mode 100644
index cf97b03..0000000
--- a/assets/gitea/img/svg/octicon-three-bars.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-thumbsdown.svg b/assets/gitea/img/svg/octicon-thumbsdown.svg
deleted file mode 100644
index f64457e..0000000
--- a/assets/gitea/img/svg/octicon-thumbsdown.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-thumbsup.svg b/assets/gitea/img/svg/octicon-thumbsup.svg
deleted file mode 100644
index 1afc4ba..0000000
--- a/assets/gitea/img/svg/octicon-thumbsup.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-tools.svg b/assets/gitea/img/svg/octicon-tools.svg
deleted file mode 100644
index 851c44f..0000000
--- a/assets/gitea/img/svg/octicon-tools.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-tracked-by-closed-completed.svg b/assets/gitea/img/svg/octicon-tracked-by-closed-completed.svg
deleted file mode 100644
index c906f0e..0000000
--- a/assets/gitea/img/svg/octicon-tracked-by-closed-completed.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-tracked-by-closed-not-planned.svg b/assets/gitea/img/svg/octicon-tracked-by-closed-not-planned.svg
deleted file mode 100644
index f738398..0000000
--- a/assets/gitea/img/svg/octicon-tracked-by-closed-not-planned.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-trash.svg b/assets/gitea/img/svg/octicon-trash.svg
deleted file mode 100644
index b52a439..0000000
--- a/assets/gitea/img/svg/octicon-trash.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-triangle-down.svg b/assets/gitea/img/svg/octicon-triangle-down.svg
deleted file mode 100644
index e803448..0000000
--- a/assets/gitea/img/svg/octicon-triangle-down.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-triangle-left.svg b/assets/gitea/img/svg/octicon-triangle-left.svg
deleted file mode 100644
index fde4d16..0000000
--- a/assets/gitea/img/svg/octicon-triangle-left.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-triangle-right.svg b/assets/gitea/img/svg/octicon-triangle-right.svg
deleted file mode 100644
index 48a0097..0000000
--- a/assets/gitea/img/svg/octicon-triangle-right.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-triangle-up.svg b/assets/gitea/img/svg/octicon-triangle-up.svg
deleted file mode 100644
index 1982cc8..0000000
--- a/assets/gitea/img/svg/octicon-triangle-up.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-trophy.svg b/assets/gitea/img/svg/octicon-trophy.svg
deleted file mode 100644
index 62c37e7..0000000
--- a/assets/gitea/img/svg/octicon-trophy.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-typography.svg b/assets/gitea/img/svg/octicon-typography.svg
deleted file mode 100644
index 3ed9d8f..0000000
--- a/assets/gitea/img/svg/octicon-typography.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-undo.svg b/assets/gitea/img/svg/octicon-undo.svg
deleted file mode 100644
index 7dd7092..0000000
--- a/assets/gitea/img/svg/octicon-undo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-unfold.svg b/assets/gitea/img/svg/octicon-unfold.svg
deleted file mode 100644
index e383765..0000000
--- a/assets/gitea/img/svg/octicon-unfold.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-unlink.svg b/assets/gitea/img/svg/octicon-unlink.svg
deleted file mode 100644
index a585e8b..0000000
--- a/assets/gitea/img/svg/octicon-unlink.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-unlock.svg b/assets/gitea/img/svg/octicon-unlock.svg
deleted file mode 100644
index efeb0ef..0000000
--- a/assets/gitea/img/svg/octicon-unlock.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-unmute.svg b/assets/gitea/img/svg/octicon-unmute.svg
deleted file mode 100644
index f471217..0000000
--- a/assets/gitea/img/svg/octicon-unmute.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-unread.svg b/assets/gitea/img/svg/octicon-unread.svg
deleted file mode 100644
index f2c4141..0000000
--- a/assets/gitea/img/svg/octicon-unread.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-unverified.svg b/assets/gitea/img/svg/octicon-unverified.svg
deleted file mode 100644
index 5833f23..0000000
--- a/assets/gitea/img/svg/octicon-unverified.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-upload.svg b/assets/gitea/img/svg/octicon-upload.svg
deleted file mode 100644
index c61e952..0000000
--- a/assets/gitea/img/svg/octicon-upload.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-verified.svg b/assets/gitea/img/svg/octicon-verified.svg
deleted file mode 100644
index 57fc6a0..0000000
--- a/assets/gitea/img/svg/octicon-verified.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-versions.svg b/assets/gitea/img/svg/octicon-versions.svg
deleted file mode 100644
index 7f54280..0000000
--- a/assets/gitea/img/svg/octicon-versions.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-video.svg b/assets/gitea/img/svg/octicon-video.svg
deleted file mode 100644
index 600a42b..0000000
--- a/assets/gitea/img/svg/octicon-video.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-webhook.svg b/assets/gitea/img/svg/octicon-webhook.svg
deleted file mode 100644
index cce7537..0000000
--- a/assets/gitea/img/svg/octicon-webhook.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-workflow.svg b/assets/gitea/img/svg/octicon-workflow.svg
deleted file mode 100644
index 2bf204b..0000000
--- a/assets/gitea/img/svg/octicon-workflow.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-x-circle-fill.svg b/assets/gitea/img/svg/octicon-x-circle-fill.svg
deleted file mode 100644
index c0a6307..0000000
--- a/assets/gitea/img/svg/octicon-x-circle-fill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-x-circle.svg b/assets/gitea/img/svg/octicon-x-circle.svg
deleted file mode 100644
index 94dc6b9..0000000
--- a/assets/gitea/img/svg/octicon-x-circle.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-x.svg b/assets/gitea/img/svg/octicon-x.svg
deleted file mode 100644
index 2d78857..0000000
--- a/assets/gitea/img/svg/octicon-x.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-zap.svg b/assets/gitea/img/svg/octicon-zap.svg
deleted file mode 100644
index a693cb6..0000000
--- a/assets/gitea/img/svg/octicon-zap.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-zoom-in.svg b/assets/gitea/img/svg/octicon-zoom-in.svg
deleted file mode 100644
index 1713ae7..0000000
--- a/assets/gitea/img/svg/octicon-zoom-in.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/svg/octicon-zoom-out.svg b/assets/gitea/img/svg/octicon-zoom-out.svg
deleted file mode 100644
index 9d682db..0000000
--- a/assets/gitea/img/svg/octicon-zoom-out.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/assets/gitea/img/telegram.png b/assets/gitea/img/telegram.png
deleted file mode 100644
index 9995703..0000000
Binary files a/assets/gitea/img/telegram.png and /dev/null differ
diff --git a/assets/gitea/img/wechatwork.png b/assets/gitea/img/wechatwork.png
deleted file mode 100644
index 296225f..0000000
Binary files a/assets/gitea/img/wechatwork.png and /dev/null differ
diff --git a/assets/gitea/logo.svg b/assets/gitea/logo.svg
deleted file mode 100644
index 5444374..0000000
--- a/assets/gitea/logo.svg
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
\ No newline at end of file
diff --git a/backups/create_calibre-web_backup.sh b/backups/create_calibre-web_backup.sh
new file mode 100755
index 0000000..309ee77
--- /dev/null
+++ b/backups/create_calibre-web_backup.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+# Backup script for Calibre-web in a Kubernetes cluster
+
+PROGRAM_NAME='backup_calibre-web'
+printlog () {
+ printf '%s: %s\n' "${PROGRAM_NAME}" "${1}"
+}
+
+BACKUP_DEST='/mnt/PRIVATE_DOCS/BACKUPS/calibre-web'
+DATABASE_FILE='/config/app.db'
+
+# Create filename for database backup
+database_backupfile="calibre-web-app_$( date +'%Y%m%d' ).db"
+
+# Retrieve container name
+base_container="$( docker ps --format '{{.Names}}' | grep tkioskje-calibre-web_tkioskje-calibre-web )"
+
+# Abort entire script if any command fails
+set -e
+
+# Database backup
+printlog 'Backing up database'
+docker cp "${base_container}":"${DATABASE_FILE}" "${BACKUP_DEST}/${database_backupfile}"
+
+# Backup cleanup
+# Only keep 30 most recent backups
+printlog 'Cleaning up old database backups'
+find "${BACKUP_DEST}" -type f -mtime +30 -print -delete
+
+printlog 'Done'
diff --git a/backups/create_freshrss_backup.sh b/backups/create_freshrss_backup.sh
new file mode 100644
index 0000000..2424959
--- /dev/null
+++ b/backups/create_freshrss_backup.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+# Backup script for FreshRSS in a Kubernetes cluster
+
+PROGRAM_NAME='backup_freshrss'
+printlog () {
+ printf '%s: %s\n' "${PROGRAM_NAME}" "${1}"
+}
+
+BACKUP_DEST='/mnt/PRIVATE_DOCS/BACKUPS/freshrss'
+
+base_container="$( docker ps --format '{{.Names}}' | grep rss-freshrss_rss-freshrss )"
+
+# Abort entire script if any command fails
+set -e
+
+# Enable maintenance mode
+# TODO
+
+# Backup config
+# TODO
+
+# Backup Database
+# TODO
+
+# Disable maintenance mode
+# TODO
+
+printlog 'Done'
diff --git a/backups/create_gitea_backup.sh b/backups/create_gitea_backup.sh
new file mode 100755
index 0000000..f8de7f6
--- /dev/null
+++ b/backups/create_gitea_backup.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+# Backup script for Gitea in a Kubernetes cluster
+
+# `gitea dump` is a mess that we should not touch. We write our own backup scripts instead.
+
+PROGRAM_NAME='backup_gitea'
+printlog () {
+ printf '%s: %s\n' "${PROGRAM_NAME}" "${1}"
+}
+
+BACKUP_DEST='/mnt/PRIVATE_DOCS/BACKUPS/gitea'
+PASSFILE='./gitea_pass.txt'
+
+# Retrieve container names
+base_container="$( docker ps --format '{{.Names}}' | grep hugit-gitea_hugit-gitea )"
+database_container="$( docker ps --format '{{.Names}}' | grep hugit-postgresql_hugit-postgresql )"
+
+# Abort entire script if any command fails
+set -e
+
+# Enable maintenance mode
+printlog 'Flushing queues'
+docker exec "${base_container}" gitea manager flush-queues
+# Pause queues
+# TODO
+
+# Backup the database
+printlog 'Backing up database'
+database_backupfile="gitea-sqlbkp_$( date +'%Y%m%d' ).bak"
+internal_database_backupfile="/tmp/${database_backupfile}"
+docker exec --env-file "${PASSFILE}" "${database_container}" pg_dump 'gitea' -cwv -h 'localhost' -U 'gitea' -f "${internal_database_backupfile}"
+docker cp "${database_container}":"${internal_database_backupfile}" "${BACKUP_DEST}"
+
+# Backup files
+printlog 'Backing up files'
+tar czvf "${BACKUP_DEST}/gitea-data_$( date +'%Y%m%d' ).tar.gz" -C "/mnt/APPS/hugit"
+
+# Disable maintenance mode
+# TODO
+
+# Double check
+# gitea doctor --all --log-file /tmp/doctor.log
+# TODO
+
+printlog 'Done'
diff --git a/backups/create_nextcloud_backup.sh b/backups/create_nextcloud_backup.sh
new file mode 100755
index 0000000..0697ac7
--- /dev/null
+++ b/backups/create_nextcloud_backup.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+# Backup script for Nextcloud in a Kubernetes cluster
+
+PROGRAM_NAME='backup_nextcloud'
+printlog () {
+ printf '%s: %s\n' "${PROGRAM_NAME}" "${1}"
+}
+
+BACKUP_DEST='/mnt/PRIVATE_DOCS/home/backup'
+PASSFILE='./nextcloud_pass.txt'
+
+# Create filename for database
+database_backupfile="nextcloud-sqlbkp_$( date +'%Y%m%d' ).bak"
+
+# Retrieve container names
+base_container="$( docker ps --format '{{.Names}}' | grep hugocloud-nextcloud_hugocloud-nextcloud )"
+database_container="$( docker ps --format '{{.Names}}' | grep hugocloud-postgresql_hugocloud-postgresql )"
+
+# Abort entire script if any command fails
+set -e
+
+# Turn on maintenance mode
+docker exec --user www-data "${base_container}" php occ maintenance:mode --on
+
+# Database backup
+printlog 'Backing up database'
+internal_database_backupfile="/tmp/${database_backupfile}"
+docker exec --env-file "${PASSFILE}" "${database_container}" pg_dump 'nextcloud' -cwv -h 'localhost' -U 'nextcloud' -f "${internal_database_backupfile}"
+docker cp "${database_container}":"${internal_database_backupfile}" "${BACKUP_DEST}"
+
+# Files backup
+for file in 'config' 'themes'; do
+ >&2 printf 'Copying %s\n' "${file}"
+ docker cp -a "${base_container}":"/var/www/html/${file}" "${BACKUP_DEST}"
+done
+
+# Turn off maintenance mode
+docker exec --user www-data "${base_container}" php occ maintenance:mode --off
+
+# Backup cleanup
+# Only keep 30 days of backups
+printlog 'Clean up old database backups'
+find "${BACKUP_DEST}" -name '*sqlbkp*' -type f -mtime +30 -print -delete
+
+printlog 'Done'
diff --git a/backups/create_vaultwarden_backup.sh b/backups/create_vaultwarden_backup.sh
new file mode 100755
index 0000000..a1a8c3a
--- /dev/null
+++ b/backups/create_vaultwarden_backup.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+# Backup script for Vaultwarden in a Kubernetes cluster
+
+PROGRAM_NAME='backup_vaultwarden'
+printlog () {
+ printf '%s: %s\n' "${PROGRAM_NAME}" "${1}"
+}
+
+BACKUP_DEST='/mnt/PRIVATE_DOCS/BACKUPS/vaultwarden'
+PASSFILE='./vaultwarden_pass.txt'
+
+# Create filename for database
+database_backupfile="vaultwarden-sqlbkp_$( date +'%Y%m%d' ).bak"
+
+# Retrieve container names
+base_container="$( docker ps --format '{{.Names}}' | grep vaultwarden_vaultwarden )"
+database_container="$( docker ps --format '{{.Names}}' | grep vaultwarden-postgresql_vaultwarden-postgresql )"
+
+# Abort entire script if any command fails
+set -e
+
+# Database backup
+printlog 'Backing up database'
+internal_database_backupfile="/tmp/${database_backupfile}"
+# Create backup file in docker container
+docker exec --env-file "${PASSFILE}" "${database_container}" pg_dump 'vaultwarden' -cwv -h 'localhost' -U 'vaultwarden' -f "${internal_database_backupfile}"
+# Copy backup outside container
+docker cp "${database_container}":"${internal_database_backupfile}" "${BACKUP_DEST}"
+
+# Files backup
+for file in 'attachments' 'sends' 'config.json' 'rsa_key.pem' 'rsa_key.pub.pem'; do
+ printlog "$( printf 'Copying %s\n' "${file}" )"
+ docker cp -a "${base_container}":"/data/${file}" "${BACKUP_DEST}"
+done
+
+# Backup cleanup
+# Only keep 30 days of backups, seems about right.
+printlog 'Cleaning up old database backups'
+find "${BACKUP_DEST}" -name '*sqlbkp*' -type f -mtime +30 -print -delete
+
+printlog 'Done'
diff --git a/assets/nextcloud/favicon.svg b/icons/nextcloud/assets/favicon.svg
similarity index 100%
rename from assets/nextcloud/favicon.svg
rename to icons/nextcloud/assets/favicon.svg
diff --git a/assets/nextcloud/logo.svg b/icons/nextcloud/assets/logo.svg
similarity index 100%
rename from assets/nextcloud/logo.svg
rename to icons/nextcloud/assets/logo.svg
diff --git a/layout.txt b/layout.txt
new file mode 100644
index 0000000..d75579d
--- /dev/null
+++ b/layout.txt
@@ -0,0 +1,47 @@
+
+ Router------------------------------
+ | (Ethernet)
+ ----------------------H------------------------
+ | |
+ | |
+ (Thunderbolt)= =(USB A)-----------Dock 1
+ | |
+ | Dell Precision 7560 |
+ | |
+ ---(Thunderbolt)= =(USB A)-----------Dock 2
+ | | |
+ | | |
+ | -----------------------------------------------
+ |
+ |
+ ----------------------------
+ |
+ |
+ -----------H------------
+ | |
+ | |
+ AC----(Powerline)= =(Thunderbolt)----4TB Disk 3
+ | |
+ | |
+ | |
+ (Ethernet)= =(USB A)----------2TB Disk
+ | |
+ | |
+ | |
+ 4TB Disk 1--------(USB A)= |
+ | |
+ | Dell Docking Station |
+ | |
+ 4TB Disk 2--------(USB A)= |
+ | |
+ | |
+ | |
+ (DisplayPort)= |
+ | |
+ | |
+ | |
+ (HDMI)= |
+ | |
+ | |
+ ------------------------
+
diff --git a/scripts/backup-zfs-dataset.sh b/scripts/backup-zfs-dataset.sh
deleted file mode 100755
index 6064dc6..0000000
--- a/scripts/backup-zfs-dataset.sh
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/bin/bash
-# Create archived backups of zfs datasets
-# Usage: backup-zfs-dataset [OPTIONS] [ ]
-
-# This script makes use of SFTP and authenticates using the .netrc file in the users home directory.
-# You should configure your system accordingly.
-
-usage() {
- >&2 printf "Usage: %s [OPTIONS] [ ]\n" "$0"
- >&2 printf "Options:\n"
- >&2 printf "\t-s --dataset \t Specify dataset name\n"
- >&2 printf "\t-d --destination \t Specify destination\n"
- >&2 printf "\t-b --base \t Create a new base\n"
- >&2 printf "\t-i --incremental \t (Default) Create a new incremental backup\n"
- >&2 printf "\t-c --compression-level \t Specify compression level (integer)\n"
- >&2 printf "\t-m --max-size \t Specify maximum size of archive parts\n"
- >&2 printf "\t-t --tag \t Provide a name to tag the archive\n"
- exit "${1:-1}"
-}
-
-# Get options.
-
-while [[ $# -gt 0 ]]; do
- case "${1}" in
- -s | --dataset)
- if ! [ -n "${2}" ]; then
- >&2 printf "Error: Invalid dataset: '%s'\n" "${2}"
- usage
- fi
- dataset="${2}"
- shift 2
- ;;
- -d | --destination)
- destination="${2}"
- shift 2
- ;;
- -b | --base)
- if [ "${create_base:=1}" -ne 1 ]; then
- >&2 printf "Error: Cannot create base backup when specifying differently.\n"
- usage
- fi
- shift 1
- ;;
- -i | --incremental)
- if [ "${create_base:=0}" -ne 0 ]; then
- >&2 printf "Error: Cannot create incremental backup when specifying differently.\n"
- usage
- fi
- shift 1
- ;;
- -c | --compression_level)
- if ! [[ "${2}" =~ [[:digit:]] ]]; then
- >&2 printf "Error: Invalid compression level: '%s'\n" "${2}"
- usage
- fi
- compression_level="${2}"
- shift 2
- ;;
- -m | --max-size)
- if ! [[ "${2}" =~ [[:digit:]](K|M|G) ]]; then
- >&2 printf "Error: Invalid maximum size: '%s'\n" "${2}"
- usage
- fi
- max_size="${2}"
- shift 2
- ;;
- -t | --tag)
- tag="${2}-"
- shift 2
- ;;
- *)
- >&2 printf "Error: Invalid option: '%s'\n" "${1}"
- usage
- ;;
- esac
-done
-
-# Check arguments.
-
-if [[ -z "${dataset:=${1}}" || -z "${destination:=${2}}" ]]; then
- >&2 printf "Error: You need to specify a dataset and a destination.\n"
- usage
-elif [ -z "${dataset}" ]; then
- >&2 printf "Error: Invalid dataset: '%s'\n" "${1}"
- usage
-fi
-
-# Set defaults
-compression_level="${compression_level:=1}"
-max_size="${max_size:=2G}"
-
-# Check if you need to make a new base backup
-if [ "${create_base:=0}" -eq 1 ]; then
- snapshot_name="manual-$( date +%Y-%m-%d_%H-%M )"
- output_filename="${destination}/${tag:=}${snapshot_name}.gz"
- # Create ZFS snapshot
- printf "Creating snapshot\n"
- sudo zfs snapshot -r "${dataset}@${snapshot_name}"
- # Compress it
- printf "Backing up now\n"
- sudo zfs send --verbose -R "${dataset}@${snapshot_name}" \
- | gzip "-${compression_level}" --verbose --rsyncable \
- | split - --verbose -b "${max_size}" \
- --filter "curl --netrc -kaT - ftp://${output_filename}"
- # Same as curl --netrc --insecure --append --upload-file
- printf "Written base backup to: '%s'.\n" "${output_filename}"
- printf "Done!\n"
- exit 0
-fi
-
-# Working snapshots
-
-# Find snapshots
-snapshots="$( find "/mnt/${dataset}/.zfs/snapshot"/* -maxdepth 0 -type d | sed -E 's/.*-([0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2})/\1\t&/' | sort -n | cut -f 2- | xargs -n1 basename )"
-# Use the two latest snapshots
-from_snapshot="$( tail -n2 <<< "${snapshots}" | head -n1 )"
-to_snapshot="$( tail -n2 <<< "${snapshots}" | tail -n1 )"
-
-# Check snapshots existance
-if [ -z "${from_snapshot}" ] || [ -z "${to_snapshot}" ]; then
- >&2 printf "Error: Less than two snapshots could be found:\n"
- >&2 printf " From: '%s'\n" "${from_snapshot}"
- >&2 printf " To: '%s'\n" "${to_snapshot}"
- exit 2
-fi
-
-# Abort entire script if anything fails.
-set -e
-
-# Backups
-
-# Incremental incremental backup.
-printf "Creating incremental backup between '%s' and '%s'\n" "${from_snapshot}" "${to_snapshot}"
-output_filename="${destination}/${tag}${from_snapshot}-${to_snapshot}.gz"
-sudo zfs send --verbose -R -i "@${from_snapshot}" "${dataset}@${to_snapshot}" \
- | gzip "-${compression_level}" --verbose \
- | split - --verbose -b "${max_size}" \
- --filter "curl --netrc -kaT - ftp://${output_filename}"
- # Same as curl --netrc --insecure --append --upload-file
-printf "Written incremental backup to: %s\n" "${output_filename}"
-
-# TODO Cleanup
-
-printf "Done!\n"
diff --git a/scripts/gitea/backup-database-k3s.sh b/scripts/gitea/backup-database-k3s.sh
deleted file mode 100755
index 08cd4c4..0000000
--- a/scripts/gitea/backup-database-k3s.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash
-# Backup Gitea database in a Kubernetes environment
-# Usage: backup-database [OPTIONS]
-
-# `gitea dump` is a mess that we should not touch. We write our own backup scripts instead.
-#
-usage() {
- >&2 printf "Usage: %s \n" "${0}"
- >&2 printf "Options:\n"
- >&2 printf "\t-e \t Specify the environment file to use\n"
- exit "${1:-1}"
-}
-
-# Get options
-
-while getopts ":e:" option; do
- case "${option}" in
- e)
- if ! [ -f "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file does not exist: '%s'.\n" "${OPTARG}"
- elif ! [ -r "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file is not readable: '%s'.\n" "${OPTARG}"
- fi
- env_file="${OPTARG}"
- ;;
- *)
- >&2 printf "Error: Invalid option: '%s'.\n" "${option}"
- usage
- ;;
- esac
-done
-shift $(( OPTIND - 1 ))
-
-# Check arguments.
-
-if [ $# -ne 1 ]; then
- >&2 printf "Error: You need to specify a destination.\n"
- usage
-elif ! [ -d "${1}" ]; then
- >&2 printf "Error: Specified destination does not exist or is not readable : '%s'.\n" "${1}"
- usage
-else
- destination="${1}"
-fi
-
-# Retrieve container names
-base_container="$( docker ps --format '{{.Names}}' | grep -E 'gitea_gitea-[0-9a-z]{10}-[0-9a-z]{5}' )"
-database_container="$( docker ps --format '{{.Names}}' | grep 'postgres_gitea-cnpg-main-1' )"
-
-if ! [[ -n "${base_container}" && -n "${database_container}" ]]; then
- >&2 printf "Error: Not all containers could be found.\n"
- exit 2
-fi
-
-# Abort entire script if any command fails
-set -e
-
-# Enable maintenance mode
-# Flush queues
-docker exec "${base_container}" gitea manager flush-queues
-# TODO Pause queues
-
-# Database backup
-
-# Filename for database backup.
-database_backupfile="gitea-sqlbkp_$( date +'%Y%m%d' ).bak"
-host_database_backupfile="${destination}/${database_backupfile}"
-
-# Backup the database
->&2 echo 'Backing up database'
-docker exec --env-file "${env_file:=.env}" "${database_container}" pg_dump 'gitea' -cwv -h 'localhost' -U 'gitea' > "${host_database_backupfile}"
-
-# Disable maintenance mode
-# TODO Continue queues
-
-# Double check
-# gitea doctor --all --log-file /tmp/doctor.log
-# TODO
-
-printf "Done.\n"
diff --git a/scripts/gitea/backup-database-ssh.sh b/scripts/gitea/backup-database-ssh.sh
deleted file mode 100755
index 81b382e..0000000
--- a/scripts/gitea/backup-database-ssh.sh
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/bin/bash
-# Backup a remote Gitea database running in docker using ssh
-# Usage: backup-database [OPTIONS]
-
-# `gitea dump` is a mess that we should not touch. We write our own backup scripts instead.
-#
-usage() {
- >&2 printf "Usage: %s \n" "${0}"
- >&2 printf "It is assumed that the machine has passwordless access to the remote host.\n\n"
- >&2 printf "Options:\n"
- >&2 printf "\t-e \t Specify the environment file to use\n"
- >&2 printf "\t-h \t Show this message\n"
- exit "${1:-1}"
-}
-
-# Get options
-
-while getopts ":e:h" option; do
- case "${option}" in
- e)
- env_file="${OPTARG}"
- ;;
- h)
- usage
- ;;
- *)
- >&2 printf "Error: Invalid option: '%s'.\n" "${option}"
- usage
- ;;
- esac
-done
-shift $(( OPTIND - 1 ))
-
-# Check arguments.
-
-if [ $# -ne 2 ]; then
- >&2 printf "Error: You need to specify a destination and a remote host.\n"
- usage
-elif ! [ -d "${2}" ]; then
- >&2 printf "Error: Specified destination does not exist or is not readable : '%s'.\n" "${2}"
- usage
-else
- remote="${1}"
- local_destination="${2}"
-fi
-
-# Abort entire script if any command fails
-set -e
-
-# Test if environment file on remote exists.
-if ! ssh "${remote}" "test -f '${env_file:=.env}'"; then
- >&2 printf "Error: Environment file does not exist: '%s'.\n" "${env_file}"
- >&2 printf " Consider using the option '-e' to specify the correct environment file.\n"
- >&2 printf "Debug: PWD: '%s'.\n" "$(ssh "${remote}" 'pwd')"
- usage 2
-elif ! ssh "${remote}" "test -r '${env_file:=.env}'"; then
- >&2 printf "Error: Environment file is not readable: '%s'.\n" "${env_file}"
- >&2 printf " Make sure the user you are using connect as has access to the file.\n"
- usage 2
-fi
-
-backupfile="nextcloud_$( date +'%Y%m%d' ).tar.gz"
-
-# Check if the script would override existing files.
-if [ -e "${local_destination}/${backupfile}" ]; then
- >&2 printf "Warning: The backup file '%s' already exists. Not overwriting.\n" "${local_destination}/${backupfile}"
-
- while [[ -e "${local_destination}/${backupfile}" ]]; do
- backupfile="${backupfile%.tar.gz}_bis${counter:=1}.tar.gz"
- ((counter++))
- done
-
- >&2 printf "Warning: Using '%s' as a safe alternative backup file.\n" "${local_destination}/${backupfile}"
-fi
-
-# Database backup
-
-# Retrieve container names
-base_container='gitea'
-database_container='gitea-db'
-
-# Create a temporary destination on remote host.
-remote_destination="$( ssh "${remote}" 'mktemp -d' )"
-printf "Debug: Using '%s' as a remote temporary directory.\n" "${remote_destination}"
-
-# Filename for database backup.
-database_backupfile="sqlbkp.bak"
-remote_database_backupfile="${remote_destination}/${database_backupfile}"
-
-# Enable maintenance mode
-# Flush queues
-ssh "${remote}" "docker exec '${base_container}' gitea manager flush-queues"
-# TODO Pause queues
-
-# Create backup file in docker container
-echo 'Info: Backing up database'
-ssh "${remote}" "docker exec --env-file '${env_file}' '${database_container}' pg_dump 'gitea' -cwv -U 'gitea' -h 'localhost' > '${remote_database_backupfile}'"
-# Restore using:
-# psql -U gitea -h localhost -d gitea -f "path/to/file"
-
-# Disable maintenance mode
-# TODO Continue queues
-
-# Double check
-# gitea doctor --all --log-file /tmp/doctor.log
-# TODO
-
-# Copy everything over to local machine.
-echo 'Info: Copying to local machine.'
-ssh "${remote}" "tar -czf '/tmp/${backupfile}' ${remote_destination}"
-scp "${remote}:/tmp/${backupfile}" "${local_destination}"
-
-# Remove temporary destination on remote host.
-printf "Debug: Cleaning up '%s' on %s.\n" "${remote_destination}" "${remote}"
-ssh "${remote}" "rm -rf ${remote_destination}"
-
-echo 'Done'
diff --git a/scripts/gitea/backup-database.sh b/scripts/gitea/backup-database.sh
deleted file mode 100755
index 62bf904..0000000
--- a/scripts/gitea/backup-database.sh
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/bash
-# Backup Gitea database in a Kubernetes environment
-# Usage: backup-database [OPTIONS]
-
-# `gitea dump` is a mess that we should not touch. We write our own backup scripts instead.
-#
-usage() {
- >&2 printf "Usage: %s \n" "${0}"
- >&2 printf "Options:\n"
- >&2 printf "\t-e \t Specify the environment file to use\n"
- exit "${1:-1}"
-}
-
-# Get options
-
-while getopts ":e:" option; do
- case "${option}" in
- e)
- if ! [ -f "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file does not exist: '%s'.\n" "${OPTARG}"
- elif ! [ -r "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file is not readable: '%s'.\n" "${OPTARG}"
- fi
- env_file="${OPTARG}"
- ;;
- *)
- >&2 printf "Error: Invalid option: '%s'.\n" "${option}"
- usage
- ;;
- esac
-done
-shift $(( OPTIND - 1 ))
-
-# Check arguments.
-
-if [ $# -ne 1 ]; then
- >&2 printf "Error: You need to specify a destination.\n"
- usage
-elif ! [ -d "${1}" ]; then
- >&2 printf "Error: Specified destination does not exist or is not readable : '%s'.\n" "${1}"
- usage
-else
- destination="${1}"
-fi
-
-namespace="ix-gitea-2"
-
-# Retrieve container names
-base_container="$( k3s kubectl get pods --namespace "${namespace}" | cut -f1 -d' ' | grep -E 'gitea-2-[0-9a-z]{10}-[0-9a-z]{5}' )"
-database_container="$( k3s kubectl get pods --namespace "${namespace}" | cut -f1 -d' ' | grep 'gitea-2-cnpg-main-2' )"
-
-if ! [[ -n "${base_container}" && -n "${database_container}" ]]; then
- >&2 printf "Error: Not all containers could be found.\n"
- exit 2
-fi
-
-# Abort entire script if any command fails
-set -e
-
-# Enable maintenance mode
-# Flush queues
-k3s kubectl exec "${base_container}" --namespace "${namespace}" -- gitea manager flush-queues
-# TODO Pause queues
-
-# Database backup
-
-# Filename for database backup.
-database_backupfile="gitea-sqlbkp_$( date +'%Y%m%d' ).bak"
-host_database_backupfile="${destination}/${database_backupfile}"
-
-# Backup the database
->&2 echo 'Backing up database'
-k3s kubectl exec "${database_container}" --namespace "${namespace}" -- env $(cat "${env_file:=.env}" | xargs) pg_dump 'gitea' -cwv -h 'localhost' -U 'gitea' > "${host_database_backupfile}"
-
-# Disable maintenance mode
-# TODO Continue queues
-
-# Double check
-# gitea doctor --all --log-file /tmp/doctor.log
-# TODO
-
-printf "Done.\n"
diff --git a/scripts/nextcloud/backup-database-k3s.sh b/scripts/nextcloud/backup-database-k3s.sh
deleted file mode 100755
index 6105468..0000000
--- a/scripts/nextcloud/backup-database-k3s.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/bash
-# Backup Nextcloud database in a Kubernetes environment.
-# Usage: backup-database
-
-usage() {
- >&2 printf "Usage: %s \n" "${0}"
- exit "${1:-1}"
-}
-
-# Get options
-
-while getopts ":e:" option; do
- case "${option}" in
- e)
- if ! [ -f "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file does not exist: '%s'.\n" "${OPTARG}"
- elif ! [ -r "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file is not readable: '%s'.\n" "${OPTARG}"
- fi
- env_file="${OPTARG}"
- ;;
- *)
- >&2 printf "Error: Invalid option: '%s'.\n" "${option}"
- usage
- ;;
- esac
-done
-shift $(( OPTIND - 1 ))
-
-# Check arguments.
-
-if [ $# -ne 1 ]; then
- >&2 printf "Error: You need to specify a destination.\n"
- usage
-elif ! [ -d "${1}" ]; then
- >&2 printf "Error: Specified destination does not exist or is not readable : '%s'.\n" "${1}"
- usage
-else
- destination="${1}"
-fi
-
-# Filename for database backup
-database_backupfile="nextcloud-sqlbkp_$(date +'%Y%m%d').bak"
-
-# Retrieve container names
-base_container="$( docker ps --format '{{.Names}}' | grep -E 'nextcloud-2_nextcloud-2-[0-9a-z]{10}-[0-9a-z]{5}' )"
-database_container="$( docker ps --format '{{.Names}}' | grep postgres_nextcloud-2-cnpg-main-1 )"
-
-if ! [[ -n "${base_container}" && -n "${database_container}" ]]; then
- >&2 printf "Error: Not all containers could be found.\n"
- exit 2
-fi
-
-# Abort entire script if any command fails
-set -e
-
-# Turn on maintenance mode
-docker exec "${base_container}" php occ maintenance:mode --on
-
-# Database backup
-echo 'Backing up database'
-host_database_backupfile="${destination}/${database_backupfile}"
-docker exec --env-file "${env_file:=.env}" "${database_container}" pg_dump 'nextcloud' -cwv -h 'localhost' -U 'nextcloud' > "${host_database_backupfile}"
-
-# Files backup
-for file in 'config' 'themes'; do
- printf "Copying %s\n" "${file}"
- docker cp -a "${base_container}":"/var/www/html/${file}" "${destination}"
-done
-
-# Turn off maintenance mode
-docker exec "${base_container}" php occ maintenance:mode --off
-
-# Backup cleanup
-# Only keep 30 days of backups
-printf "Clean up old database backups.\n"
-find "${destination}" -name '*sqlbkp*' -type f -mtime +30 -print -delete
-
-printf "Done\n"
diff --git a/scripts/nextcloud/backup-database-ssh.sh b/scripts/nextcloud/backup-database-ssh.sh
deleted file mode 100755
index 9e2a705..0000000
--- a/scripts/nextcloud/backup-database-ssh.sh
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/bin/bash
-# Backup a remote Nextcloud database using ssh.
-# Usage: backup-database [OPTIONS]
-
-usage() {
- >&2 printf "Usage: %s \n" "${0}"
- >&2 printf "It is assumed that the machine has passwordless access to the remote host.\n\n"
- >&2 printf "Options:\n"
- >&2 printf "\t-e \t Specify the environment file to use\n"
- >&2 printf "\t-h \t Show this message\n"
- exit "${1:-1}"
-}
-
-# Get options
-
-while getopts ":e:h" option; do
- case "${option}" in
- e)
- env_file="${OPTARG}"
- ;;
- h)
- usage
- ;;
- *)
- >&2 printf "Error: Invalid option: '%s'.\n" "${option}"
- usage
- ;;
- esac
-done
-shift $(( OPTIND - 1 ))
-
-# Check arguments.
-
-if [ $# -ne 2 ]; then
- >&2 printf "Error: You need to specify a destination and a remote host.\n"
- usage
-elif ! [ -d "${2}" ]; then
- >&2 printf "Error: Specified destination does not exist or is not readable : '%s'.\n" "${1}"
- usage
-else
- remote="${1}"
- local_destination="${2}"
-fi
-
-# Abort entire script if any command fails
-set -e
-
-if ! ssh "${remote}" "test -f '${env_file:=.env}'"; then
- >&2 printf "Error: Environment file does not exist: '%s'.\n" "${env_file}"
- >&2 printf "Debug: PWD: '%s'.\n" "$(ssh "${remote}" 'pwd')"
- >&2 printf " Consider using the option '-e' to specify the correct environment file.\n"
- usage 2
-elif ! ssh "${remote}" "test -r '${env_file:=.env}'"; then
- >&2 printf "Error: Environment file is not readable: '%s'.\n" "${env_file}"
- >&2 printf " Make sure the user you are using connect as has access to the file.\n"
- usage 2
-fi
-
-backupfile="nextcloud_$(date +'%Y%m%d').tar.gz"
-
-# Check if the script would override existing files.
-if [ -e "${local_destination}/${backupfile}" ]; then
- >&2 printf "Warning: The backup file '%s' already exists. Not overwriting.\n" "${local_destination}/${backupfile}"
-
- while [[ -e "${local_destination}/${backupfile}" ]]; do
- backupfile="${backupfile%.tar.gz}_bis${counter:=1}.tar.gz"
- ((counter++))
- done
-
- >&2 printf "Warning: Using '%s' as a safe alternative backup file.\n" "${local_destination}/${backupfile}"
-fi
-
-# Database backup
-
-# Create a temporary destination on remote host.
-remote_destination="$( ssh "${remote}" 'mktemp -d' )"
-printf "Debug: Using '%s' as a remote temporary directory.\n" "${remote_destination}"
-
-# Filename for database backup
-database_backupfile='sqlbkp.bak'
-remote_database_backupfile="${remote_destination}/${database_backupfile}"
-
-# Turn on maintenance mode
-ssh "${remote}" 'sudo -u www-data /usr/bin/php /var/www/nextcloud/occ maintenance:mode --on'
-
-echo 'Info: Backing up database'
-ssh "${remote}" "source '${env_file}' && pg_dump 'nextcloud' -cwv -U 'nextcloud' -h 'localhost' > '${remote_database_backupfile}'"
-# Restore using:
-# psql -U nextcloud -h localhost -d nextcloud -f "path/to/file"
-
-# Files backup
-echo 'Info: Copying static files.'
-ssh "${remote}" "cp -a '/var/www/nextcloud/themes' '${remote_destination}'"
-
-# Turn off maintenance mode
-ssh "${remote}" 'sudo -u www-data /usr/bin/php /var/www/nextcloud/occ maintenance:mode --off'
-
-# Copy everything over to local machine.
-echo 'Info: Copying to local machine.'
-ssh "${remote}" "tar -czf '/tmp/${backupfile}' ${remote_destination}"
-scp "${remote}:/tmp/${backupfile}" "${local_destination}"
-
-# Remove temporary destination on remote host.
-printf "Debug: Cleaning up '%s' on %s.\n" "${remote_destination}" "${remote}"
-ssh "${remote}" "rm -rf ${remote_destination}"
-
-# Backup cleanup
-# Only keep 30 days of backups
-printf "Info: Cleaning up old database backups in '%s'\n" "${local_destination}"
-find "${local_destination}" -name 'nextcloud_*.tar.gz' -type f -mtime +30 -print -delete
-
-echo 'Done'
diff --git a/scripts/nextcloud/backup-database.sh b/scripts/nextcloud/backup-database.sh
deleted file mode 100755
index da3e4a9..0000000
--- a/scripts/nextcloud/backup-database.sh
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/bin/bash
-# Backup Nextcloud database in a Kubernetes environment.
-# Usage: backup-database
-
-usage() {
- >&2 printf "Usage: %s \n" "${0}"
- exit "${1:-1}"
-}
-
-# Get options
-
-while getopts ":e:" option; do
- case "${option}" in
- e)
- if ! [ -f "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file does not exist: '%s'.\n" "${OPTARG}"
- elif ! [ -r "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file is not readable: '%s'.\n" "${OPTARG}"
- fi
- env_file="${OPTARG}"
- ;;
- *)
- >&2 printf "Error: Invalid option: '%s'.\n" "${option}"
- usage
- ;;
- esac
-done
-shift $(( OPTIND - 1 ))
-
-# Check arguments.
-
-if [ $# -ne 1 ]; then
- >&2 printf "Error: You need to specify a destination.\n"
- usage
-elif ! [ -d "${1}" ]; then
- >&2 printf "Error: Specified destination does not exist or is not readable : '%s'.\n" "${1}"
- usage
-else
- destination="${1}"
-fi
-
-namespace="ix-nextcloud-2"
-
-# Filename for database backup
-database_backupfile="nextcloud-sqlbkp_$(date +'%Y%m%d').bak"
-
-# Retrieve container names
-base_container="$( k3s kubectl get pods --namespace "${namespace}" | cut -f1 -d' ' | grep -E 'nextcloud-2-[0-9a-z]{10}-[0-9a-z]{5}' )"
-database_container="$( k3s kubectl get pods --namespace "${namespace}" | cut -f1 -d' ' | grep 'cnpg-main' )"
-
-if ! [[ -n "${base_container}" && -n "${database_container}" ]]; then
- >&2 printf "Error: Not all containers could be found.\n"
- exit 2
-fi
-
-# Abort entire script if any command fails
-set -e
-
-# Turn on maintenance mode
-k3s kubectl exec "${base_container}" --namespace "${namespace}" -- php occ maintenance:mode --on
-
-# Database backup
-echo 'Backing up database'
-host_database_backupfile="${destination}/${database_backupfile}"
-k3s kubectl exec "${database_container}" --namespace "${namespace}" -- env $(cat "${env_file:=.env}" | xargs) pg_dump 'nextcloud' -cwv -h 'localhost' -U 'nextcloud' > "${host_database_backupfile}"
-
-# Files backup
-for file in 'config' 'themes'; do
- printf "Copying %s\n" "${file}"
- k3s kubectl --namespace "${namespace}" cp "${base_container}":"/var/www/html/${file}" "${destination}"
-done
-
-# Turn off maintenance mode
-k3s kubectl exec "${base_container}" --namespace "${namespace}" -- php occ maintenance:mode --off
-
-# Backup cleanup
-# Only keep 30 days of backups
-printf "Clean up old database backups.\n"
-find "${destination}" -name '*sqlbkp*' -type f -mtime +30 -print -delete
-
-printf "Done\n"
diff --git a/scripts/rclone.conf.example b/scripts/rclone.conf.example
deleted file mode 100644
index 682ff45..0000000
--- a/scripts/rclone.conf.example
+++ /dev/null
@@ -1,10 +0,0 @@
-[overlay]
-type = chunker
-remote = Nicole:
-
-[Nicole]
-type = ftp
-host = 192.168.0.20
-user = USERNAME
-pass = CHANGEME
-
diff --git a/scripts/vaultwarden/backup-database-k3s.sh b/scripts/vaultwarden/backup-database-k3s.sh
deleted file mode 100755
index 0b0c640..0000000
--- a/scripts/vaultwarden/backup-database-k3s.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash
-# Backup Vaultwarden database in a Kubernetes environment.
-# Usage: backup-database [OPTIONS]
-
-usage() {
- >&2 printf "Usage: %s \n" "${0}"
- >&2 printf "Options:\n"
- >&2 printf "\t-e \t Specify the environment file to use\n"
- exit "${1:-1}"
-}
-
-# Get options
-
-while getopts ":e:" option; do
- case "${option}" in
- e)
- if ! [ -f "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file does not exist: '%s'.\n" "${OPTARG}"
- elif ! [ -r "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file is not readable: '%s'.\n" "${OPTARG}"
- fi
- env_file="${OPTARG}"
- ;;
- *)
- >&2 printf "Error: Invalid option: '%s'.\n" "${option}"
- usage
- ;;
- esac
-done
-shift $(( OPTIND - 1 ))
-
-# Check arguments
-
-if [ $# -ne 1 ]; then
- >&2 printf "Error: You need to specify a destination.\n"
- usage
-elif ! [ -d "${1}" ]; then
- >&2 printf "Error: Specified destination does not exist or is not readable : '%s'.\n" "${1}"
- usage
-else
- destination="${1}"
-fi
-
-# Retrieve container names
-base_container="$( docker ps --format '{{.Names}}' | grep -E 'vaultwarden-2_vaultwarden-2-[0-9a-z]{10}-[0-9a-z]{5}' )"
-database_container="$( docker ps --format '{{.Names}}' | grep postgres_vaultwarden-2-cnpg-main-1 )"
-
-if ! [[ -n "${base_container}" && -n "${database_container}" ]]; then
- >&2 printf "Error: Not all containers could be found.\n"
- exit 2
-fi
-
-# Abort entire script if any command fails
-set -e
-
-# Database backup
-
-# Filename for database backup
-database_backupfile="vaultwarden-sqlbkp_$(date +'%Y%m%d').bak"
-host_database_backupfile="${destination}/${database_backupfile}"
-
-# Create backup file in docker container
-echo 'Backing up database'
-docker exec --env-file "${env_file:=.env}" "${database_container}" pg_dump 'vaultwarden' -cwv -h 'localhost' -U 'vaultwarden' > "${host_database_backupfile}"
-
-# Files backup
-for file in 'attachments' 'sends' 'rsa_key.pem' 'rsa_key.pub.pem'; do # 'config.json'
- printf 'Copying %s\n' "${file}"
- docker cp -a "${base_container}":"/data/${file}" "${destination}"
-done
-
-# Backup cleanup
-# Only keep 30 days of backups, seems about right.
-echo 'Cleaning up old database backups'
-find "${destination}" -name '*sqlbkp*' -type f -mtime +30 -print -delete
-
-echo 'Done'
diff --git a/scripts/vaultwarden/backup-database-ssh.sh b/scripts/vaultwarden/backup-database-ssh.sh
deleted file mode 100755
index 1d6022c..0000000
--- a/scripts/vaultwarden/backup-database-ssh.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/bin/bash
-# Backup a remote Vaultwarden database using ssh.
-# Usage: backup-database [OPTIONS]
-
-usage() {
- >&2 printf "Usage: %s \n" "${0}"
- >&2 printf "It is assumed that the machine has passwordless access to the remote host.\n\n"
- >&2 printf "Options:\n"
- >&2 printf "\t-e \t Specify the environment file to use\n"
- >&2 printf "\t-h \t Show this message\n"
- exit "${1:-1}"
-}
-
-# Get options
-
-while getopts ":e:h" option; do
- case "${option}" in
- e)
- env_file="${OPTARG}"
- ;;
- h)
- usage
- ;;
- *)
- >&2 printf "Error: Invalid option: '%s'.\n" "${option}"
- usage
- ;;
- esac
-done
-shift $(( OPTIND - 1 ))
-
-# Check arguments
-
-if [ $# -ne 2 ]; then
- >&2 printf "Error: You need to specify a destination and a remote host.\n"
- usage
-elif ! [ -d "${2}" ]; then
- >&2 printf "Error: Specified destination does not exist or is not readable : '%s'.\n" "${2}"
- usage
-else
- remote="${1}"
- local_destination="${2}"
-fi
-
-# Abort entire script if any command fails
-set -e
-
-# Test if environment file on remote exists.
-if ! ssh "${remote}" "test -f '${env_file:=.env}'"; then
- >&2 printf "Error: Environment file does not exist: '%s'.\n" "${env_file}"
- >&2 printf " Consider using the option '-e' to specify the correct environment file.\n"
- >&2 printf "Debug: PWD: '%s'.\n" "$(ssh "${remote}" 'pwd')"
- usage 2
-elif ! ssh "${remote}" "test -r '${env_file:=.env}'"; then
- >&2 printf "Error: Environment file is not readable: '%s'.\n" "${env_file}"
- >&2 printf " Make sure the user you are using connect as has access to the file.\n"
- usage 2
-fi
-
-backupfile="vaultwarden_$( date +'%Y%m%d' ).tar.gz"
-
-# Check if the script would override existing files.
-if [ -e "${local_destination}/${backupfile}" ]; then
- >&2 printf "Warning: The backup file '%s' already exists. Not overwriting.\n" "${local_destination}/${backupfile}"
-
- while [[ -e "${local_destination}/${backupfile}" ]]; do
- backupfile="${backupfile%.tar.gz}_bis${counter:=1}.tar.gz"
- ((counter++))
- done
-
- >&2 printf "Warning: Using '%s' as a safe alternative backup file.\n" "${local_destination}/${backupfile}"
-fi
-
-# Database backup
-
-base_container='vaultwarden'
-database_container='vaultwarden-db'
-
-# Create a temporary destination on remote host.
-remote_destination="$( ssh "${remote}" 'mktemp -d' )"
-printf "Debug: Using '%s' as a remote temporary directory.\n" "${remote_destination}"
-
-# Filename for database backup
-database_backupfile="sqlbkp.bak"
-remote_database_backupfile="${remote_destination}/${database_backupfile}"
-
-# Create backup file in docker container
-echo 'Info: Backing up database'
-ssh "${remote}" "docker exec --env-file '${env_file}' '${database_container}' pg_dump 'vaultwarden' -cwv -U 'vaultwarden' -h 'localhost' > '${remote_database_backupfile}'"
-# Restore using:
-# psql -U vaultwarden -h localhost -d vaultwarden -f "path/to/file"
-
-# Files backup
-for file in 'attachments' 'sends' 'rsa_key.pem' 'rsa_key.pub.pem'; do # 'config.json'
- printf "Info: Copying %s\n" "${file}"
- ssh "${remote}" "docker cp -a '${base_container}:/data/${file}' '${remote_destination}'"
-done
-
-# Copy everything over to local machine.
-echo 'Info: Copying to local machine.'
-ssh "${remote}" "tar -czf '${remote_destination}/${backupfile}' --exclude=${backupfile} ${remote_destination}"
-scp "${remote}:${remote_destination}/${backupfile}" "${local_destination}"
-
-# Remove temporary destination on remote host.
-printf "Debug: Cleaning up '%s' on %s.\n" "${remote_destination}" "${remote}"
-ssh "${remote}" "rm -rf ${remote_destination}"
-
-# Backup cleanup
-# Only keep 30 days of backups, seems about right.
-printf "Info: Cleaning up old database backups in '%s'\n" "${local_destination}"
-find "${local_destination}" -name 'vaultwarden_*.tar.gz' -type f -mtime +30 -print -delete
-
-echo 'Done'
diff --git a/scripts/vaultwarden/backup-database.sh b/scripts/vaultwarden/backup-database.sh
deleted file mode 100755
index 43069b4..0000000
--- a/scripts/vaultwarden/backup-database.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/bash
-# Backup Vaultwarden database in a Kubernetes environment.
-# Usage: backup-database [OPTIONS]
-
-usage() {
- >&2 printf "Usage: %s \n" "${0}"
- >&2 printf "Options:\n"
- >&2 printf "\t-e \t Specify the environment file to use\n"
- exit "${1:-1}"
-}
-
-# Get options
-
-while getopts ":e:" option; do
- case "${option}" in
- e)
- if ! [ -f "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file does not exist: '%s'.\n" "${OPTARG}"
- elif ! [ -r "${OPTARG}" ]; then
- >&2 printf "Error: Specified environment file is not readable: '%s'.\n" "${OPTARG}"
- fi
- env_file="${OPTARG}"
- ;;
- *)
- >&2 printf "Error: Invalid option: '%s'.\n" "${option}"
- usage
- ;;
- esac
-done
-shift $(( OPTIND - 1 ))
-
-# Check arguments
-
-if [ $# -ne 1 ]; then
- >&2 printf "Error: You need to specify a destination.\n"
- usage
-elif ! [ -d "${1}" ]; then
- >&2 printf "Error: Specified destination does not exist or is not readable : '%s'.\n" "${1}"
- usage
-else
- destination="${1}"
-fi
-
-namespace="ix-vaultwarden-2"
-
-# Retrieve container names
-base_container="$( k3s kubectl get pods --namespace "${namespace}" | cut -f1 -d' ' | grep -E 'vaultwarden-2-[0-9a-z]{10}-[0-9a-z]{5}' )"
-database_container="$( k3s kubectl get pods --namespace "${namespace}" | cut -f1 -d' ' | grep 'vaultwarden-2-cnpg-main-1' )"
-
-if ! [[ -n "${base_container}" && -n "${database_container}" ]]; then
- >&2 printf "Error: Not all containers could be found.\n"
- exit 2
-fi
-
-# Abort entire script if any command fails
-set -e
-
-# Database backup
-
-# Filename for database backup
-database_backupfile="vaultwarden-sqlbkp_$(date +'%Y%m%d').bak"
-host_database_backupfile="${destination}/${database_backupfile}"
-
-# Create backup file in Kubernetes pod
-echo 'Backing up database'
-k3s kubectl exec "${database_container}" --namespace "${namespace}" -- env $(cat "${env_file:=.env}" | xargs) pg_dump 'vaultwarden' -cwv -h 'localhost' -U 'vaultwarden' > "${host_database_backupfile}"
-
-# Files backup
-for file in 'attachments' 'sends' 'rsa_key.pem' 'rsa_key.pub.pem'; do # 'config.json'
- printf 'Copying %s\n' "${file}"
- k3s kubectl --namespace "${namespace}" cp "${base_container}":"/data/${file}" "${destination}"
-done
-
-# Backup cleanup
-# Only keep 30 days of backups, seems about right.
-echo 'Cleaning up old database backups'
-find "${destination}" -name '*sqlbkp*' -type f -mtime +30 -print -delete
-
-echo 'Done'