This is a docker NAS setup used to quickly get going with a private NAS and cloud setup. The purpose to keep it all dockerized is for super quick migrations in the long term future and to allow better long term updates even with an OS that is not updated as often. All containers are optional and most can easily be enabled with a boolean setting excluding nginx which is required.
If you have v2 see this migration guide
- Ubuntu 20 server or greater is the preffered setup used for this system.
- Domain name ddns docs
- Port forwarding 80 + 443
- Static IP on Server, alternative is DHCP reservation on router.
Just clone the repo and your all set. Afterwards run ./server.bin
sudo apt install git
cd /
git clone https://github.com/SiloCityLabs/lochnas.git
sudo ./server.bin -daemon install
This is untested as of right now, See issue #53 for more information.
This is untested as of right now, See issue #44 for more information.
So long as you dont tamper with commited files and keep your changes inside docker-data and home you should be all set. If you need additional paths to ignore I recommend you add a local git ignore.
./server.bin -app update
server.bin -config /path/to/config/file
server.bin -daemon
start - Start in background
stop - Stop background
restart - restart in background
install - Install as service
uninstall - Uninstall service
server.bin -ddns
ip - Grab current wanip from router
refresh - update ddns if ip changed
force - Force update ddns ip
server.bin -domain
renew - Renew all domains
add - Renew all domains, expects domain as argument
delete - Renew all domains
server.bin -apps
update - Update
server.bin -server
notify - Send test notifications
Do everything as root user for easier setup sudo su
. Or put sudo in front of every command.
We will be using the www-data user to share permissions between services. You can make seperate users and groups if you would like to but I found that this is the easiest way to manage access accross the board.
You can give your user access to any files of www-data with this command.
usermod -aG www-data yourusername
If you need to access the local folder mounted in the compose file at /raid
A7DD
from nextcloud local storage plugin, you can run the following set of commands on a folder to grant permission:
chown -R www-data:www-data path/to/local
chmod -R 770 path/to/local
Modify/create the config.yml
and with your settings.
Containers:
- Nginx + SSL + Auto Renew with certbot (web proxy + ssl)
- Transmission + VPN (Torrents, Requires VPN)
- Nextcloud + MariaDB (Private cloud)
- Home Assistant (Home Automation)
- Portainer (Quickly add more docker containers)
- Plex
- Samba (Local file share)
- Minecraft
- Ark
- PHPMyAdmin
- Sonarr
- Radarr
- Prowlarr
This project is licensed under the GPLv3 License - see the LICENSE file for details
- Thanks to all the creators of the docker containers listed in the compose files.