Select the Always Free image, ARM or x86. 1 core only, recommended 4GB RAM, should be exceed 6 GB.
Choose Ubuntu image.
Download the SSH key and name it accordingly.
Key Pair
Using PuttyGen.
Place the key in ./ssh/openssh_keys
Open PuttyGen, conversion -> import keys
Save the key files as ppk file in root folder of ./ssh
Putty
Grab the IP address in the cloud console
Give a name in saved sessions
Go to behavior, choose these options
Under Data, make sure Terminal-type string is xterm-256color
Under Terminal -> Features, check “disable application keypad mode” to fix issues with nano
The private key needs to be load in Connection -> SSH -> Auth -> Credentials
To get the IP address of the VPS at any time
curlifconfig.me
Basic Setup + Docker
Installing Caddy web server (simple to use reverse proxy), lightweight, easy and no need for docker. (Nginx is also a good candidate for reverse proxy as the command is easy to memorize and does not require consulting documentation sites. However, the syntax for nginx is extremely complex compared to caddy and might not be easily memorized.
Tunneling Basic Services (Jellyfin, Web) with Caddy and Tailscale¶
This procedure is not reproducible yet. Rigorous testing is still required before being documented. Here are the known procedures.
The purpose is to tunnel normal web or network intensive traffic such as Jellyfin when faced with CG-NAT or similar situations (in this case locked down dorm internet), also configure hardware transcoding (in this case NVENC, but Intel QSV for future) to mitigate limitations with Canadian ISP(s).
Tunneling Basic Services (Jellyfin, Web) with Caddy and Tailscale¶
This procedure is not reproducible yet. Rigorous testing is still required before being documented. Here are the known procedures.
The purpose is to tunnel normal web or network intensive traffic such as Jellyfin when faced with CG-NAT or similar situations (in this case locked down dorm internet), also configure hardware transcoding (in this case NVENC, but Intel QSV for future) to mitigate limitations with Canadian ISP(s).
This will run demucs with CUDA GPU acceleration, make sure to put the path in double quote. The extracted file will be found in the directory where you run the command eg. the default Anaconda prompt starts in ~/separated
Comments
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Docker Apps/01 docker-infra/index.html b/Docker Apps/01 docker-infra/index.html
index a46ae1a..cd75177 100755
--- a/Docker Apps/01 docker-infra/index.html
+++ b/Docker Apps/01 docker-infra/index.html
@@ -1,4 +1,4 @@
- 01 Docker Infrastructure - Documentation
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, such as qBittorrent and nzbget can be put together in downloader.yml even though they do not have common properties or require same networking
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
The entire docker root folder is copied to a NFS share on another computer. With exception of minecraft and home assistant which a specialized method is used.
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.
Public172.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 Media172.96.0.0/16 - bridge network for arrs, downloader and management applications for easy interconnection when configuring Minecraft172.255.255.0/24 - bridge network for Minecraft related networks
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 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
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, such as qBittorrent and nzbget can be put together in downloader.yml even though they do not have common properties or require same networking
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
The entire docker root folder is copied to a NFS share on another computer. With exception of minecraft and home assistant which a specialized method is used.
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.
Public172.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 Media172.96.0.0/16 - bridge network for arrs, downloader and management applications for easy interconnection when configuring Minecraft172.255.255.0/24 - bridge network for Minecraft related networks
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 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
To allows offline play for bedrock mobile version. Go to ./plugins/Geyser-Spigot/config.yml and change these lines. Do not install the plugin floodgate, if it’s installed, removed the plugin. ViaVersions is also needed for mobile play.
This is a docker container that automatically updates the public IPv4 address of the server every 5 minutes to dynamic DNS services Dynu and DuckDNS. It is the fork of Linuxserver DuckDNS container.
This is a docker container that automatically updates the public IPv4 address of the server every 5 minutes to dynamic DNS services Dynu and DuckDNS. It is the fork of Linuxserver DuckDNS container.
In the section labeled “manual entry key,” copy the key.
Use your authenticator app to add scan the QR code.
Activate 2FA by completing the form and clicking activate.
Once 2FA is enabled, use the key you copied as the value for the TOTP parameter.
Docker
dockerrun-d-v/home/karis/docker/epicgames:/usr/app/config:rw-p3000:3000-m2g--nameepicgames--restartunless-stoppedcharlocharlie/epicgames-freegames:latest
+ Epic Games Free Games - Documentation
The first 3 bind mount are for configuration of filebrowser, eg. config, database and branding files. On first deployment, need to create an empty database.db file. The remaining bind mount are for the folders that need to be accessed, the folders should be bound under /srv.
This is the content of .filebrowser.json
{
+
The first 3 bind mount are for configuration of filebrowser, eg. config, database and branding files. On first deployment, need to create an empty database.db file. The remaining bind mount are for the folders that need to be accessed, the folders should be bound under /srv. Filebrowser by default create a volume under /srv, in this setup where folders are bind mount to subfolders in /srv and nothing bind mount directly, it could create a specific volume under docker just for /srv which is unavoidable.
At least for apps from jlesage, it supports an environment variable. Create an environment file called vnc.env
The environment file can be reference in many docker images from jlesage using docker-compose. The current environment variable specify U/GID, time zone and make every app dark mode. It is also possible to set VNC passwords. This is the full list of environment variables. For supported apps such as avidemux, there is an option WEB_AUDIO=1 which allow audio to work.
At least for apps from jlesage, it supports an environment variable. Create an environment file called vnc.env
The environment file can be reference in many docker images from jlesage using docker-compose. The current environment variable specify U/GID, time zone and make every app dark mode. It is also possible to set VNC passwords. This is the full list of environment variables. For supported apps such as avidemux, there is an option WEB_AUDIO=1 which allow audio to work.
/config is the directory which app configuration are stored and should have the correct permission, there are other additional bind mounts for /storage which is the default file choose location for some containers.
any directory from host can be bind mount into anything in container; however if a directory is not created on host and the container has to create it, it’s possible it will be owned by root
QT Based Apps that use QT based file explorer (eg. Avidemux) has the configuration stored in ${APP_CONFIG}/xdg/config/QtProject.ini, this is used to setup file explorer shortcuts.
GTK Based Apps that use GTK based file explorer (eg. MCASelector) has the configuration stored in ${APP_CONFIG}/xdg/config/gtk-3.0/bookmarks, this is used to setup file explorer shortcuts.
file:///world, file:///storage
-
There are also some application specific setup. For applications accessing hard drive or intensive apps, it is best to stop when not used. Lazytainer and ContainerNursery and possibly using DNS server can help automate this process.