Some cool open source apps for docker, like drawpile, krita, immich, photoprism, librephotos, invidious, jellyfin, navidrome, audiobookshelf, calibre-web, kavita, komga, wallabag, paperless-ngx, vikunja, outline, bookstack, nextcloud, file browser, syncthing, seafile, memos, mealie, it-tools, excalidraw...
- Mastodon: A decentralized social network.
- PeerTube: A video sharing platform with decentralized hosting.
- Plume: A blogging and federated microblogging platform.
- Pleroma: A decentralized social networking backend.
- ZNC: An IRC bouncer.
- Code-server: VSCode in the browser.
- Gitea: Git service with painless self-hosting.
- Portainer: Web-based Docker management.
- Home Assistant: Open-source home automation.
- Syncthing: Open-source continuous file synchronization.
- Nginx Proxy Manager: Reverse proxy and letsencrypt manager.
- OpenMediaVault: Debian-based network attached storage solution.
- Pi-hole: Network-wide ads and trackers blocker.
- Flarum: Discussion forums for building great communities.
- WordPress: Content management system (CMS).
- Ghost: Open-source blogging platform.
- Bitwarden RS: Bitwarden Password Manager.
- Forklorer: File manager written in PHP.
- OpenBB Terminal: Open-source financial analysis framework.
- Grafana: Analytics and monitoring tool.
How to run it.
Drawpile:
bash docker run -p 27750:27750/tcp -p 27750:27750/udp -v /path/to/drawpiledir:/var/lib/drawpile --name drawpile lainsce/drawpile serverImmich:
bash docker-compose -f https://raw.githubusercontent.com/immich-app/immich/main/docker-compose.yml up -dPhotoPrism:
bash docker run -d --name photoprism \ -p 2342:2342 \ -v ~/photoprism/storage:/photoprism/storage \ -v ~/photoprism/originals:/photoprism/originals \ photoprism/photoprism:latestLibrePhotos:
bash docker-compose pull docker-compose up -dInvidious:
bash git clone https://github.com/iv-org/invidious.git cd invidious docker-compose upJellyfin:
bash docker run -d \ --name=jellyfin \ -p 8096:8096 \ -v /path/to/config:/config \ -v /path/to/cache:/cache \ -v /path/to/media:/media \ jellyfin/jellyfinNavidrome:
bash docker run -d -p 4533:4533 -v <music_folder>:/music -v <data_folder>:/data deluan/navidromeAudiobookshelf:
bash docker run -d \ --name=audiobookshelf \ -p 13936:13936 \ -v /mnt/books:/books \ -v /mnt/podcasts:/podcasts \ -v /mnt/config:/config \ audiobookshelf/audiobookshelf:latestCalibre-web:
bash docker run --name calibre-web -d \ -p 8083:8083 \ -e PUID=1000 -e PGID=1000 \ -e TZ=Europe/London \ -v </path/to/calibre-library>:/books \ -v </path/to/calibre-web>:/config \ linuxserver/calibre-webKavita:
bash docker run -d \ --name=kavita \ -p 5000:5000 \ -v <kavita_data>:/config \ -v <library_directory>:/library \ lscr.io/linuxserver/kavita:latestKomga:
bash docker run -d \ --name=komga \ -p 8080:8080 \ -v /path/to/config:/config \ -v /path/to/comics:/comics \ gotson/komga:releaseWallabag:
bash docker run -d \ --name wallabag \ -v /path/to/wallabag/data:/var/www/wallabag/data \ -v /path/to/wallabag/images:/var/www/wallabag/web/assets/images \ -p 80:80 \ wallabag/wallabagPaperless-NGX:
bash docker-compose -f https://raw.githubusercontent.com/appzer/deps/paperless-ng/docker-compose-paperless-ng.yaml up -dVikunja:
bash git clone https://github.com/vikunja/vikunja-docker.git cd vikunja-docker docker-compose up -dOutline:
bash docker run -d --name outline \ -p 3000:3000 \ --env-file .env.outline \ -v outline-data:/var/lib/outline postgres docker run -d --name outline \ -p 3000:3000 \ --network="container:postgres" \ -e POSTGRES_DB=outline \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=yourpassword \ --env-file .env.outline \ -v outline-data:/var/lib/outline \ --env-file .env.outline \ outlineserver/outline:latestBookStack:
bash docker run -d \ --name=bookstack \ -e DB_HOST=db \ -e DB_DATABASE=bookstack \ -e DB_USERNAME=bookstack \ -e DB_PASSWORD=secret \ -p 80:80 \ linuxserver/bookstack:latest docker run -d \ --name=bookstack_db \ -e POSTGRES_PASSWORD=secret \ -e POSTGRES_DB=bookstack \ -e POSTGRES_USER=bookstack \ -p 5432:5432 \ --restart unless-stopped \ postgres:13-alpineNextcloud:
bash docker run -d \ -p 8080:80 \ --name nextcloud \ -v /path/to/nextcloud:/var/www/html \ -v /path/to/appdata:/var/www/html/data \ -v /path/to/nextcloud-config:/var/www/html/config \ nextcloud:latestFile Browser:
bash docker run -d \ --name filebrowser \ -v /path/to/share:/srv \ -v /path/to/filebrowser.db:/database.db \ -p 80:80 \ filebrowser/filebrowserSyncthing:
bash docker run -d --name=syncthing \ -p 8384:8384 -p 22000:22000/tcp -p 21025:21025/udp \ -v /path/to/syncthing/config:/var/syncthing \ -v /path/to/sync/folder:/var/syncthing/Sync \ syncthing/syncthingSeafile:
bash docker run -d \ -e SEAFILE_ADMIN_EMAIL='admin@example.com' \ -e SEAFILE_ADMIN_PASSWORD='asecurepassword' \ -v /opt/seafile-data:/shared \ -p 80:80 \ --name seafile \ seafileltd/seafile:latestMemos:
bash docker run --rm -it \ -p 5230:5230 \ -v /path/to/db:/app/data \ neosmemo/memos:latestMealie:
bash docker run -d \ --name mealie \ -p 9000:80 \ -v </path/to/db/dir>:/app/data \ -v </path/to/media/dir>:/app/media \ mealie-db \ ghcr.io/hextrd/mealie:latestIt-tools: It-tools is not a single application but a collection of IT tools. You would need to refer to specific containers within this collection or find individual tools that suit your needs.
Excalidraw: Excalidraw is typically run in web browsers, but you can use a lightweight Node.js setup:
bash docker run -d -p 8081:8081 excalidraw/excalidraw:latestMastodon: Mastodon is more complex to set up due to multiple services. Typically done using
docker-compose:bash git clone https://github.com/mastodon/mastodon.git && cd mastodon ./bin/setupPeerTube:
bash docker-compose pull docker-compose up -dPlume:
bash git clone https://git.joinplu.me/plume/plume.git && cd plume docker-compose up --build -dPleroma:
bash git clone https://git.pleroma.social/pleroma/pleroma.git && cd pleroma cp config/settings.pod.* prod.secret.exs docker-compose up -dZNC:
bash docker run -d \ --name znc \ -p 6667:6667 \ -v /path/to/znc-conf:/znc-data \ zncCode-server:
bash docker run -d --name code-server \ -p 8080:8080 \ -v "/path/to/code:/home/coder/project" \ codercom/code-server:latestGitea:
bash docker run -d --name gitea \ -p 10022:22 \ -p 3000:3000 \ -v /var/lib/gitea:/data \ gitea/gitea:latestPortainer:
bash docker volume create portainer_data docker run -d -p 9000:9000 -p 8000:8000 --name portainer \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ceHome Assistant:
bash docker run --init -d \ --name home-assistant \ --privileged \ -v /path/to/config:/config \ -p 8123:8123 \ homeassistant/home-assistantPi-hole:
bash docker run -d \ --name pihole \ -p 53:53/tcp -p 53:53/udp \ -p 67:67/udp -p 547:547/udp \ -p 80:80 \ --dns=127.0.0.1 --dns=1.1.1.1 \ --cap-add=NET_ADMIN \ -e TZ="America/New_York" \ -v "$(pwd)/pihole/:/etc/pihole/" \ -v "$(pwd)/dnsmasq.d/:/etc/dnsmasq.d/" \ --restart unless-stopped \ pihole/pihole:latestFlarum:
bash docker-compose pull docker-compose up -dWordPress:
bash docker run -d \ --name wordpress \ -p 80:80 \ -v /path/to/wordpress:/var/www/html \ -e WORDPRESS_DB_HOST=$DB_CONTAINER_NAME:3306 \ -e WORDPRESS_DB_NAME=wordpress \ -e WORDPRESS_DB_USER=wp_user \ -e WORDPRESS_DB_PASSWORD=wp_password \ wordpress:latestGhost:
bash docker run -d \ --name ghost \ -p 2368:2368 \ -v /data/ghost/content:/var/lib/ghost/content \ ghost:latestBitwarden RS:
bash docker run -d \ --name bitwarden \ -e SIGNUPS_ALLOWED=false \ -v /bw-data:/data \ -p 80:80 \ -p 3012:3012 \ bitwardenrs/serverForklorer: Forklorer requires a web server. This is a simple setup using Nginx:
bash git clone https://github.com/juliangruber/forklorer.git && cd forklorer npm install npm build # Build frontend once docker-compose up -dOpenBB Terminal:
bash docker run -d --name openbbterminal \ -p 5000:5000 \ -v /path/to/user_data:/openbb_userdata \ -e PYTHON_VERSION=3.9 \ -e OPENBB_LOGO=True \ openbbterminal/openbb-pythonGrafana:
bash docker run -d \ -p 3000:3000 \ --name=grafana \ -v /data/grafana-storage:/var/lib/grafana \ grafana/grafana-enterprise