An open API service indexing awesome lists of open source software.

https://github.com/poulou0/dock-os

Almost zero-configuration deployments of docker containers useful in a home server.
https://github.com/poulou0/dock-os

docker docker-compose

Last synced: 26 days ago
JSON representation

Almost zero-configuration deployments of docker containers useful in a home server.

Awesome Lists containing this project

README

          

# dockÔS
```
Noun, [do.kós]
The main beam, especially in a house
```
Almost zero-configuration deployments of docker containers useful in a home server.

* Certbot (Let's Encrypt) https://hub.docker.com/r/certbot/certbot
* Duplicati https://hub.docker.com/r/linuxserver/duplicati
* ESPHome https://hub.docker.com/r/esphome/esphome
* File Browser https://hub.docker.com/r/filebrowser/filebrowser
* FileZilla https://hub.docker.com/r/linuxserver/filezilla
* Firefox https://hub.docker.com/r/linuxserver/firefox
* FTP server https://hub.docker.com/r/delfer/alpine-ftp-server
* Home Assistant https://hub.docker.com/r/homeassistant/home-assistant
* LibreOffice https://hub.docker.com/r/linuxserver/libreoffice
* MariaDB https://hub.docker.com/_/mariadb
* MiniDLNA https://hub.docker.com/r/vladgh/minidlna
* MotionEye https://hub.docker.com/r/ccrisan/motioneye
* Nextcloud https://hub.docker.com/r/linuxserver/nextcloud
* Nginx https://hub.docker.com/_/nginx
* ONLYOFFICE https://hub.docker.com/r/onlyoffice/documentserver
* phpMyAdmin https://hub.docker.com/r/linuxserver/phpmyadmin
* Pi-hole https://hub.docker.com/r/pihole/pihole
* Portainer CE https://hub.docker.com/r/portainer/portainer-ce
* Raspotify https://hub.docker.com/r/derkades/raspotify
* RetroArch Web https://hub.docker.com/r/inglebard/retroarch-web
* Rhasspy https://hub.docker.com/r/rhasspy/rhasspy
* Samba server https://hub.docker.com/r/dperson/samba
* shellinabox https://hub.docker.com/r/sspreitzer/shellinabox
* Transmission https://hub.docker.com/r/linuxserver/transmission
* VS Code https://hub.docker.com/r/linuxserver/code-server
* WireGuard Easy https://hub.docker.com/r/weejewel/wg-easy

![dock-os.png](./dock-os.png)

### Installation
```shell
cd ~ && sudo apt update && \
sudo apt install -y ssh git docker-compose openssl && \
git clone https://github.com/poulou0/dock-os.git && \
cp ./dock-os/.env.dist ./dock-os/.env && \
echo "Give the username of a sudoer" && read && sed -i "s/USER=.*/USER=$REPLY/g" ./dock-os/.env && \
echo "Give the password of the sudoer" && read -s && sed -i "s/PASSWORD=.*/PASSWORD=$REPLY/g" ./dock-os/.env && \
sed -i "s|ROOT_DIR=.*|ROOT_DIR=$PWD\/dock-os|g" ./dock-os/.env && \
mkdir ./dock-os/nginx/certs && openssl req -newkey rsa:2048 -nodes -x509 -days 3650 -subj "/C=GR" \
-keyout ./dock-os/nginx/certs/dashboard.key -out ./dock-os/nginx/certs/dashboard.crt && \
sudo docker-compose -f ./dock-os/docker-compose.yml up -d
```

### Usage
* Dashboard: `https://`
* File manager: `http://:8000`
* MiniDLNA status: `http://:8200`
* ...

Nerdier notes

### File browser
Under Settings > Global Settings > Command runner > After Copy/Delete/Rename/Save/Upload
```shell
curl http://$(/sbin/ip route|awk '/default/ { print $3 }')/minidlna-rescan
```
NOT WORKING, but promising!
```shell
sudo docker-compose exec filebrowser /filebrowser cmds add after_copy "curl http://\$(/sbin/ip route|awk '/default/ { print \$3 }')/minidlna-rescan" && \
sudo docker-compose exec filebrowser /filebrowser cmds add after_delete "curl http://\$(/sbin/ip route|awk '/default/ { print \$3 }')/minidlna-rescan" && \
sudo docker-compose exec filebrowser /filebrowser cmds add after_rename "curl http://\$(/sbin/ip route|awk '/default/ { print \$3 }')/minidlna-rescan" && \
sudo docker-compose exec filebrowser /filebrowser cmds add after_save "curl http://\$(/sbin/ip route|awk '/default/ { print \$3 }')/minidlna-rescan" && \
sudo docker-compose exec filebrowser /filebrowser cmds add after_upload "curl http://\$(/sbin/ip route|awk '/default/ { print \$3 }')/minidlna-rescan"
```
To list them `sudo docker-compose exec filebrowser /filebrowser cmds ls`

### miniDLNA
Control url: `http://:8200/rootDesc.xml`

Example to get "All videos" XML
```shell
curl http://:8200/ContentDir.xml -H 'SOAPAction:urn:schemas-upnp-org:service:ContentDirectory:1#Browse' --data '2$8BrowseDirectChildren'
```
Source: https://developer.sony.com/develop/audio-control-api/get-started/browse-dlna-file

### certbot

Example issuing:
```shell
docker-compose -f ./dock-os/plugins/certbot/docker-compose.yml run --rm certbot certonly --webroot --webroot-path /var/www/certbot/ [--dry-run] -d sub1.domain1.com,sub2.domain1.com,sub.domain2.com
```
Renew:
```shell
docker-compose -f ./dock-os/plugins/certbot/docker-compose.yml run --rm certbot renew
```
More on `./nginx/conf.d/README.md`

### TODO

* migrate to iconify
```


```
https://icon-sets.iconify.design/