From 754c68b5e519dcf3b0828aa0ff7db1f3c2a4f58f Mon Sep 17 00:00:00 2001 From: Kevin Hu Date: Fri, 5 Jul 2024 22:57:23 -0700 Subject: [PATCH] docker apps infrastructure --- !documentation/Cloud VPS/jdownloader.md | 29 +++++++++++- !documentation/Docker Apps/01 docker-infra.md | 46 +++++++++++++++++++ !documentation/Linux Server/olivetin.md | 12 ++--- !documentation/Linux Server/sambasmb-setup.md | 6 ++- !documentation/index.md | 8 ++-- 5 files changed, 87 insertions(+), 14 deletions(-) create mode 100644 !documentation/Docker Apps/01 docker-infra.md diff --git a/!documentation/Cloud VPS/jdownloader.md b/!documentation/Cloud VPS/jdownloader.md index 9f370e7..ffe63a8 100644 --- a/!documentation/Cloud VPS/jdownloader.md +++ b/!documentation/Cloud VPS/jdownloader.md @@ -1,9 +1,34 @@ --- date: 2023-01-11T05:43:16.000000Z -update: 2023-01-13T04:51:58.000000Z +update: 2024-07-02T22:22:24-07:00 --- # JDownloader After setting up JDownloader and it appears well in WebUI. -The section is useless now as UHDMV has shutdown and it's pointless to setup multiple automated JDownloader server on VPS. \ No newline at end of file +The section is useless now as UHDMV has shutdown and it's pointless to setup multiple automated JDownloader server on VPS. + +### Settings for JDownloader +Debloat settings https://rentry.org/jdownloader2 +**Advanced Settings** +`GraphicalUserInterfaceSettings: Banner` -> disable +`GraphicalUserlnterfaceSettings: Premium Alert Task Column` - > disable +`GraphicalUserInterfaceSeftings: Premium Alert Speed Column` -> disable +`GraphicalUserInterfaceSettings: Premium Alert ETA Column` -> disable +`GraphicalUsserInterfaceSeftings: Special Deal Oboom Dialog Visible On Startup` -> disable +`GraphicalUsserInterfaceSeftings: Special Deals` -> disable +`GraphicalUsserInterfaceSeftings: Donate Button State` -> `Hidden (automode)` + +#### Theming +`GraphicalUserInterfaceSettings: Look And Feel Theme` - > `BLACK_EYE` +**For Colors** +`LAFSettings: Color For` +- Panel background and header background and alternate row background- `#ff222222` +- Selected Rows Background - `#ff666666` +- Package Row Background - `#ff333333` +- Mouse Over Row Background - `#ff666666` +- Panel Header Foreground, Tooltip Foreground, Selected Rows Foreground, Package Row Foreground, Mouse Over Row Foreground, Alternate Row Foreground, Account Temp Error Row Foreground, Account Error Row Foreground- `#ffffffff` + - basically, change all the black values to white when searching for `color fore`, change everything except blue colors and error color +- Enabled Text Color, Speed Meter Text, Speed Meter Average Text, Config Panel Description Text, Config Header Text Color - `#ffffffff` +- Disabled Text Color - `#ff666666` + - basically, when searching for `color text`, change all to white except for disabled text \ No newline at end of file diff --git a/!documentation/Docker Apps/01 docker-infra.md b/!documentation/Docker Apps/01 docker-infra.md new file mode 100644 index 0000000..80ecbed --- /dev/null +++ b/!documentation/Docker Apps/01 docker-infra.md @@ -0,0 +1,46 @@ +--- +date: 2024-07-05 17:59 +update: 2024-07-05T22:56:49-07:00 +comments: "true" +--- +# 01 Docker Infrastructure + +### Filesystem +##### Compose +All `docker-compose.yml` files are stored in `~/docker` folder, which then by default is under the network `docker_default`. +- by default for newly created apps, a new folder is created and `docker-compose.yml` is created for that app for testing + - once app testing is complete, the compose file can be moved docker root folder if appropriate or remain +- some apps can be grouped together and these compose files are in the root docker folder such as `media.yml`, `network.yml`, the grouping allows multiple services to be managed by a single compose. For grouping, some of the property can include + - the apps share common properties such as `arrs` apps + - it is preferable for apps to live in same network, eg. `teslamate` + - a large app requiring multiple containers eg. `frontend`, `mysql` etc.. + - apps share similar/same [category](#Categories), such as `qBittorrent` and `nzbget` can be put together in `downloader.yml` even though they do not have common properties or require same networking +##### Storage +The storage used for all containers are bind mount. +- application configs are stored in `~/docker/[app]` + - if an app has multiple components needing persistence (eg. app with database, helpers), a folder will be created as such `~/docker/[app]/postgres` etc. +- apps that also store non-config data (such as music, documents etc.) and not using a lot of space can bind mount `/mnt/nvme/share` (a directory on local or another SSD) for fast data access and without spinning up HDD +- exceptions are home assistant or its related home automation containers and these are stored at `/srv/homeassistant` +##### Backup +The entire docker root folder is copied to a NFS share on another computer. With exception of [minecraft](Minecraft/minecraft-prep-and-install.md) and home assistant which a specialized method is used. +### Network +With `docker-compose`, a new network is created with the name of folder the compose is located, while it's possible to change network, it is not straightforward, therefore, there is no points in manually defining networks unless required. + +**Public** `172.80.0.0/16` - bridge network for public facing applications with reverse proxy, this way when configuring Nginx Proxy Manager, all it need is to enter `container_name:80` rather than IP address. +- Nginx Proxy Manager - `172.80.44.3` +- Other containers will use docker DHCP to get address +- Containers that need to public facing can attach to this network +**Media** `172.96.0.0/16` - bridge network for arrs, downloader and management applications for easy interconnection when configuring +**Minecraft** `172.255.255.0/24` - bridge network for Minecraft related networks +- Minecraft server (mcserver) - `172.255.255.65` + +### Categories +Media Apps - apps related to media acquisition, curation and other functions services for Jellyfin +Networking - reverse proxy, DNS, VPN and related services +Home Automation - home assistant and its associated functions +VNC - containers based on [jlesage-vnc-apps](jlesage-vnc-apps.md) or Linuxserver Kasm images, usually desktop apps run in a browser via noVNC +Management - tools for managing docker containers or entire server +Games - game servers and associated tools +Filesharing - apps that share files to other clients +Documentation - notes and operation procedures for server infrastructure +Authentication - services that handle single sign-on (SSO) with users \ No newline at end of file diff --git a/!documentation/Linux Server/olivetin.md b/!documentation/Linux Server/olivetin.md index 0a9a5cb..337b15f 100644 --- a/!documentation/Linux Server/olivetin.md +++ b/!documentation/Linux Server/olivetin.md @@ -1,6 +1,6 @@ --- date: 2023-09-19T21:15:30.000000Z -update: 2024-01-10T03:01:30.000000Z +update: 2024-07-01T13:35:44-07:00 comments: "true" --- # OliveTin @@ -18,7 +18,7 @@ sudo dpkg -i OliveTin…​deb sudo systemctl enable --now OliveTin ``` -**Configuration** +### Configuration The configuration file is located at `/etc/OliveTin/config.yaml ` @@ -53,7 +53,7 @@ Execute a shell command with textbox input. type: ascii ``` -- use {{ }} and give a variable +- use `{{ }}` and give a variable - under arguments type, assign a type for it, ascii only allows letters and numbers Execute a shell command with choices @@ -74,7 +74,7 @@ Execute a shell command with choices This example give choices to start or stop a docker stack of a docker-compose file. If a argument is given the parameter choices, it will be in dropdown mode. -**Icons Customization** +### Icons Customization The icons need to be placed in a folder in */var/www/\[icon-folder\]/icon.png.* To use the icons, offline image or web address, it should be in HTML format. The size of 48px is the default size of OliveTin icons. Other CSS options such as `style="background-color: white;"` also works. @@ -90,13 +90,13 @@ For example, `☺` 😊. icon: "☺" ``` -**Icon Management** +#### Icon Management The default icon folder is `/var/www/olivetin/icons` The icon folder of all homelab icons is in `~/icons/homelab` -**API** +### API Simple action button. diff --git a/!documentation/Linux Server/sambasmb-setup.md b/!documentation/Linux Server/sambasmb-setup.md index 1977e73..c65199f 100644 --- a/!documentation/Linux Server/sambasmb-setup.md +++ b/!documentation/Linux Server/sambasmb-setup.md @@ -1,6 +1,6 @@ --- date: 2024-05-07T18:06:07.000000Z -update: 2024-05-07T18:11:58.000000Z +update: 2024-07-01T13:34:00-07:00 comments: "true" --- # Samba(SMB) Setup @@ -36,4 +36,6 @@ Lastly, add the user and password for the SMB share ```bash sudo smbpasswd -a $USER # enter the password twice -``` \ No newline at end of file +``` + +In the case when Windows fail to write files in the samba share for odd reason. Go to `Manage Credentials` -> `Windows Credentials` -> `Add a Windows Credential` and fill the necessary address, username and password. \ No newline at end of file diff --git a/!documentation/index.md b/!documentation/index.md index 705d298..7f2af11 100644 --- a/!documentation/index.md +++ b/!documentation/index.md @@ -1,13 +1,13 @@ # Home ### Recent Updates +- [01 Docker Infrastructure](01 docker-infra.md) +- [JDownloader](jdownloader.md) +- [OliveTin](olivetin.md) +- [Samba(SMB) Setup](sambasmb-setup.md) - [Dynamic DNS Updater Docker](ddns-update.md) - [Filebrowser](filebrowser.md) - [Mkdocs](mkdocs.md) - [Debian-Based Server Setup](debian-based-server-setup.md) - [Tunneling Basic Services (Jellyfin, Web) with Caddy and Tailscale](tunneling-basic-services-jellyfin-web-with-caddy-and-tailscale.md) - [Useful Plugins](useful-plugins.md) -- [Minecraft Prep and Install](minecraft-prep-and-install.md) -- [Free Games Claimer](free-games-claimer.md) -- [Audiobookshelf](audiobookshelf.md) -- [jlesage VNC Apps](jlesage-vnc-apps.md)