Excalidraw

Excalidraw is a collaborative whiteboard app with a hand-drawn style for sketching diagrams, mockups and ideas. It supports real-time collaboration, easy sharing and offline usage. The interface is minimal and distraction-free, making it great for brainstorming sessions. You can export drawings to SVG or PNG and even embed them in documents. It’s a favorite among educators, designers and developers for visual communication. Setup docker-compose.yaml version: "3.8" networks: docker_net: external: true services: excalidraw: image: excalidraw/excalidraw:latest container_name: excalidraw restart: unless-stopped ports: - 3030:80 networks: - docker_net Sources website GitHub

October 7, 2024 · Niklas Amundsson

FreshRSS

FreshRSS is a self-hosted RSS aggregator that helps you collect and read articles from blogs, news sites and more. It supports multiple users, OPML import/export and mobile-friendly viewing. You can categorize feeds, mark articles as read/unread and customize the interface. A great choice for those who prefer owning their news reader data. Setup docker-compose.yaml version: '3' networks: docker_net: external: true volumes: config: services: freshrss: image: lscr.io/linuxserver/freshrss:latest container_name: freshrss restart: unless-stopped environment: - PUID=1000 - PGID=1000 - TZ=Europe/Vienna volumes: - config:/config ports: - 8180:80 networks: - docker_net -> change base url in config.php of fresh rss to your domain ...

October 7, 2024 · Niklas Amundsson

Gitea

Gitea is a lightweight, self-hosted Git service similar to GitHub or GitLab. It offers repository hosting, issue tracking, code reviews and a web-based UI. Designed for simplicity and speed, it’s ideal for teams or individuals who want to manage their own Git servers. It’s easy to deploy and low on system resources. Gitea is perfect for developers wanting version control without cloud dependency. Setup docker-compose.yaml version: '3' networks: docker_net: external: true volumes: gitea: mysql: services: server: image: gitea/gitea:latest container_name: gitea restart: unless-stopped environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=mysql - GITEA__database__HOST=gitea-mysql:3306 - GITEA__database__NAME=gitea - GITEA__database__USER=admin - GITEA__database__PASSWD=$MYSQL_PASSWORD networks: - docker_net volumes: - gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - 3000:3000 - 2222:22 depends_on: - db db: image: mysql:8 container_name: gitea-mysql restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD - MYSQL_USER=admin - MYSQL_PASSWORD=$MYSQL_PASSWORD - MYSQL_DATABASE=gitea networks: - docker_net volumes: - mysql:/var/lib/mysql gitea-act-runner: image: gitea/act_runner:latest container_name: gitea-act-runner restart: unless-stopped volumes: - /root/config/act-runner:/config/act-runner - /var/run/docker.sock:/var/run/docker.sock environment: CONFIG_FILE: "/config/act-runner/config.yaml" GITEA_INSTANCE_URL: $GITEA_INSTANCE_URL GITEA_RUNNER_REGISTRATION_TOKEN: $RUNNER_REGISTRATION_TOKEN GITEA_RUNNER_NAME: "main-runner" GITEA_RUNNER_LABELS: "" networks: - docker_net deploy: resources: limits: cpus: '2' memory: 4G Add Gitea runner generate config file: ...

October 7, 2024 · Niklas Amundsson

Homebox

Homebox is a household inventory system that helps you track personal belongings across rooms and locations. You can add items with images, categories and details like purchase date and value. It’s useful for home organization, insurance documentation or moving preparation. The web interface is clean and user-friendly. Great for anyone who wants to maintain a digital record of their possessions. Setup docker-compose.yaml version: "3.4" networks: docker_net: external: true volumes: data: driver: local services: homebox: image: ghcr.io/hay-kot/homebox:latest container_name: homebox restart: unless-stopped environment: - HBOX_LOG_LEVEL=info - HBOX_LOG_FORMAT=text - HBOX_WEB_MAX_UPLOAD_SIZE=10 - HBOX_OPTIONS_ALLOW_REGISTRATION=false volumes: - data:/data/ ports: - 3100:7745 networks: - docker_net Sources website GitHub

October 7, 2024 · Niklas Amundsson

Memos

Memos is a minimalist self-hosted app for taking notes and managing thoughts. It supports Markdown, tagging and a responsive design that works across devices. Notes are organized by creation date and easily searchable. The app prioritizes simplicity and speed, with a clean interface and minimal distractions. It’s perfect for journaling, daily logs, or capturing ideas quickly. Setup docker-compose.yaml version: '3' networks: docker_net: external: true volumes: memos: services: app: image: neosmemo/memos:stable container_name: memos restart: unless-stopped ports: - 5230:5230 volumes: - memos:/var/opt/memos networks: - docker_net Sources website GitHub

October 7, 2024 · Niklas Amundsson

NGINX proxy manager

NGINX Proxy Manager is a web-based UI for managing NGINX reverse proxy configurations. It allows you to easily route traffic to internal services using domain names and configure SSL with Let’s Encrypt. The interface simplifies setup for users who may not be familiar with NGINX’s configuration syntax. It supports access control, redirection and advanced proxy rules. Ideal for self-hosted environments with multiple services. Setup docker-compose.yaml version: '3' networks: docker_net: external: true volumes: data: letsencrypt: services: app: image: jc21/nginx-proxy-manager:latest container_name: nginxpm restart: unless-stopped ports: - 80:80 - 81:81 - 443:443 volumes: - data:/data - letsencrypt:/etc/letsencrypt networks: - docker_net Sources website GitHub

October 7, 2024 · Niklas Amundsson

Nocodb

NocoDB is an open-source no-code platform that converts any SQL database into a smart spreadsheet interface. Users can collaborate, filter and visualize data without writing queries. It supports REST and GraphQL APIs, automation and integration with third-party tools. Great for managing projects, CRM data, or inventory without deep technical knowledge. A strong alternative to paid platforms like Airtable. Setup docker-compose.yaml (mysql) version: '3' networks: docker_net: external: true volumes: db_data: {} nc_data: {} services: nocodb: image: nocodb/nocodb:latest container_name: nocodb restart: unless-stopped depends_on: root_db: condition: service_healthy environment: NC_DB: "mysql2://root_db:3306?u=noco&p=$PASSWORD&d=root_db" ports: - 8080:8080 volumes: - nc_data:/usr/app/data networks: - docker_net root_db: image: mysql:8.3.0 container_name: nocodb_mysql restart: unless-stopped environment: MYSQL_DATABASE: root_db MYSQL_PASSWORD: $PASSWORD MYSQL_ROOT_PASSWORD: $ROOT_PASSWORD MYSQL_USER: noco healthcheck: retries: 10 test: - CMD - mysqladmin - ping - "-h" - localhost timeout: 20s volumes: - db_data:/var/lib/mysql networks: - docker_net docker-compose.yaml (pg) version: '3' networks: docker_net: external: true volumes: db_data: {} nc_data: {} services: nocodb: image: nocodb/nocodb:latest container_name: nocodb restart: unless-stopped depends_on: root_db: condition: service_healthy environment: NC_DB: "pg://root_db:5432?u=postgres&p=$PASSWORD&d=root_db" ports: - 8080:8080 volumes: - nc_data:/usr/app/data networks: - docker_net root_db: image: postgres container_name: nocodb_pg restart: unless-stopped environment: POSTGRES_DB: root_db POSTGRES_PASSWORD: $PASSWORD POSTGRES_USER: postgres healthcheck: interval: 10s retries: 10 test: "pg_isready -U \"$$POSTGRES_USER\" -d \"$$POSTGRES_DB\"" timeout: 2s volumes: - db_data:/var/lib/postgresql/data networks: - docker_net Sources website GitHub

October 7, 2024 · Niklas Amundsson

Portainer

Portainer is a comprehensive management UI for Docker and Kubernetes containers. It provides dashboards for viewing container health, logs, volumes and networks. You can start, stop and configure containers without touching the CLI. It supports role-based access and stack deployment for teams. An essential tool for anyone managing a containerized environment. Setup docker run docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest add environment for other lxc containers in same proxmox server ...

October 7, 2024 · Niklas Amundsson

Slash

Slash is a self-hosted bookmarking and knowledge organization platform. It supports full-text search, tagging and archiving of saved pages. Designed for information collectors, it helps you create a personal knowledge base. The UI is clean and keyboard-friendly, making it fast to navigate. Slash is ideal for researchers and lifelong learners who gather lots of online resources. Setup docker-compose.yaml version: '3' networks: docker_net: external: true volumes: slash: services: app: image: yourselfhosted/slash:latest container_name: slash restart: unless-stopped ports: - 5231:5231 volumes: - slash:/var/opt/slash networks: - docker_net Sources GitHub

October 7, 2024 · Niklas Amundsson

Umami

Umami is a privacy-first, self-hosted web analytics solution. It tracks website visits, pages and referrers without collecting personal data or using cookies. The dashboard is clean and customizable, giving you essential insights without the bloat. It’s GDPR-compliant by design and lightweight enough to run on small servers. Great for developers and businesses who care about data privacy. Setup docker-compose.yaml version: '3.7' networks: docker_net: external: true volumes: umami-db-data: services: umami: image: ghcr.io/umami-software/umami:postgresql-latest container_name: umami restart: unless-stopped ports: - 3005:3000 environment: DATABASE_URL: postgresql://umami:$UMAMI_DB_PASSWORD@umami_db:5432/umami DATABASE_TYPE: postgresql APP_SECRET: $UMAMI_APP_SECRET depends_on: umami_db: condition: service_healthy healthcheck: test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"] interval: 5s timeout: 5s retries: 5 networks: - docker_net umami_db: image: postgres:15-alpine container_name: umami_db restart: unless-stopped environment: POSTGRES_DB: umami POSTGRES_USER: umami POSTGRES_PASSWORD: $UMAMI_DB_PASSWORD volumes: - umami-db-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 5 networks: - docker_net Sources website GitHub

October 7, 2024 · Niklas Amundsson