GitXplorerGitXplorer
m

server-config

public
13 stars
0 forks
0 issues

Commits

List of commits on branch main.
Unverified
0bc9b645adeba392b70b184ec72a814cbf2ebf1e

map more rom folders

mmzrimsek committed 2 days ago
Unverified
ecf70dafcf1cd06c613b3d4dc3cb44880b616300

add scrutiny

mmzrimsek committed 9 days ago
Unverified
8bedab0ff36b0983214214dd9db6791a55da2191

add multi root config

mmzrimsek committed 13 days ago
Unverified
cd554a6f0563608cafd0c2ff0e5bd59b4662a322

fix valheim restart policy setting

mmzrimsek committed 13 days ago
Unverified
3bb592b814e0b68a0ef2ecfba50294b8899de5aa

split out duplicati to its own finally

mmzrimsek committed 13 days ago
Unverified
2e3416b30d09aea2c1413075d152a51f1d464e45

organization

mmzrimsek committed 16 days ago

README

The README file for this repository.

server-config

A repo of files to set up my local server running Ubuntu 20.04 Server.

To achieve a similar set up you must have Docker installed, with Docker Compose recommended. Script included here but it may not run all the way through - each command run separately should do the trick though. Hopefully this will be improved in the future. As an aside, installations on Raspberry Pis seem to be hit or miss, especially with older models - this article got Docker up and running on an older Pi that was a little more resistant installing with the commands in the included script.

Portainer is highly recommended as an easy-to-use interface to manage your containers. By and large, each docker-compose.yml is deployed as a stack to take advantage of environment variable substitution and to allow control of the configurations through the Portainer interface.

After getting Portainer running, getting Traefik running next is probably the most sensible route to go. Optionally, allowing ssh access makes orchestrating this all remotely much easier. Many of the included docker-compose.yml files assume the networking stack is set up and have additional configurations with that mind.

As a side note, many of these setups also include Kubernetes configurations. If that is of interest, there is a corresponding folder that details how a cluster can be created. Due to Portainer's ability to manage Kubernetes clusters, it's likely still useful to have Portainer up and running, if only to add the cluster as an agent endpoint.

Services

  • Portainer - Docker Container and Kubernetes Cluster Management and Orchestration
  • Jenkins - Customizable Build Server
  • Home Assistant - Home Automation Platform
  • Homepage - Simple and Customizable Dashboard for your Services
  • Vikunja - Task Management Platform
  • Trilium - OneNote-like Wiki and Notes Platform
  • Firefly III - Budgeting and Transaction Tracking
  • Muse - A Discord music bot
  • n8n - An automation platform similar to
  • Transmission - Torrenting download client
  • Duplicati - File backup
  • OpenLDAP - User credential backend
  • Grafana - Data visualization
  • Speedtest Tracker - Continuous Network Speedtests
  • Uptime Kama - Continuous uptime monitoring for websites, ports, and various other services
  • KASM Workspaces - Container Streaming Platform
  • Grocy - Groceries and household management
  • KitchenOwl - Grocery and Recipe management
  • Ntfy - Simple notification service
  • Linkding - Bookmark management
  • Dozzle - A light weight service to view logs from docker containers
  • Traggo - A simple time tracking service
  • Ghost - A simple blogging platform
  • Paperless-NGX - A PDF processing and management server
  • BookBounty - An application to extend Radarr to allow for automatic querying from Library Genesis
  • Komf - A metadata service for Kavita
  • LinkStack - A simple LinkTree like service for simple link sharing
  • Pydio Cells - A simple file sync platform
  • Baikal - A CalDAV and CardDAV server
  • Vaultwarden - A password manager
  • Steam-Headless - A headless Steam client for running games on a server you can access from your browser
  • ByteStash - A small service to store code snippets and other text data
  • Scrutiny - A service to monitor the health of your hard drives
  • Utilities
    • Stirling PDF - A collection of tools for working with PDFs
    • ConvertX - A collection of tools for converting files
    • Web-Check - A service to check the status of web services
    • My-IP - A service to check the IP of the client and related information
    • IT-Tools - A collection of tools for Developers and IT professionals
  • Networking
    • Traefik - Container-focused Reverse Proxy
    • Cloudflared - Cloudflare's Zero Trust tunnels
    • Wireguard - VPN tunnel
    • PiHole - Network-wide Adblocking and DNS Management
    • MQTT - MQTT Servers for Cross-Server Communication
      • RabbitMQ
      • Mosquitto
    • Authelia (part of stacks) - Reverse proxy forward auth middleware and SSO provider
  • Media
    • ErsatzTV - A service to create a TV guide for your media
    • Jellyfin - Media organization and viewing
      • Includes Jellyseerr
    • Jellyfin Auto Collections - Automatically create collections in Jellyfin based on configurable lists
    • Wizarr - User management and onboarding for Jellyfin
    • Jellystat - A page to get stats on your Jellyfin server usage
    • Metube - A service to assist in downloading youtube videos
    • Pinchflat - A service to assist in downloading youtube videos, but more focused on continuous downloads playlists and channels (for archiving, collecting shows for Jellyfin, etc).
  • Databases
  • Games
    • Factorio
    • Minecraft
    • Valheim
    • Terraria
    • Project Zomboid
    • The Forest
    • Skyrim Together Reborn
    • Palworld

Stacks

These are more fully designed solutions rather than a service with a container or two.

Core stacks that reflect my main service setups

  • Infrastructure - Mostly services that support other services, like network infrastructure, databases, and media aquisition
  • Main - Mostly daily driver services

Notes

Eventually, to simplify maintenance after playing with the cluster, I moved back to just hosting everything in Docker on my server or NAS based on the type of service it was (more critical stuff stayed on the NAS because it has data redundancy and it's less likely to get rebooted over the server)

Setting up an app in Docker that is proxied by Traefik in the cluster (yes this is kind of a weird hybrid set up for a service but we are self-hosting stuff here) requires two steps.

  1. Set up the Docker container on a host machine accessible by the cluster
  2. Use the provided nonHostedTraefikRoute.yaml k3s deployment to create a service that routes traffic to the container

I use unRAID for my NAS OS and adjusted the web UI port to live on 55080 instead of 80 so Traefik could bind to and control port 80 on that machine

If your Ubuntu install doesn't take up your whole drive for whatever reason try this

Eventually, I wanted to try Proxmox out...so I migrated all my Docker services to my NAS and turned the other server into a Proxmox host