47 lines
1.2 KiB
Markdown
47 lines
1.2 KiB
Markdown
# MicroNAS
|
|
|
|
Lightweight web GUI to manage SMB shares, NFS exports, and quotas on a single home server (Proxmox LXC/VM). Runs directly on the host as a systemd service.
|
|
|
|
## Requirements
|
|
|
|
```
|
|
apt install samba nfs-kernel-server quota python3 python3-venv
|
|
```
|
|
|
|
## Install
|
|
|
|
```bash
|
|
# Copy files
|
|
cp -r . /opt/micronas
|
|
|
|
# Create virtualenv and install deps
|
|
python3 -m venv /opt/micronas/venv
|
|
/opt/micronas/venv/bin/pip install flask gunicorn
|
|
|
|
# Create environment file with your credentials
|
|
cat > /etc/micronas.env <<EOF
|
|
MICRONAS_USER=admin
|
|
MICRONAS_PASS=changeme
|
|
EOF
|
|
chmod 600 /etc/micronas.env
|
|
|
|
# Install and enable the systemd service
|
|
cp /opt/micronas/micronas.service /etc/systemd/system/
|
|
systemctl daemon-reload
|
|
systemctl enable --now micronas
|
|
```
|
|
|
|
The app listens on `127.0.0.1:5000`. Put a reverse proxy (nginx) in front if you want HTTPS, or reach it directly on the LAN by binding to `0.0.0.0:5000` (change `-b` in the unit file).
|
|
|
|
## Dev / test
|
|
|
|
```bash
|
|
MICRONAS_USER=admin MICRONAS_PASS=secret flask --app app run --debug
|
|
# or with docker-compose for a sandbox:
|
|
docker compose up
|
|
```
|
|
|
|
## Auth
|
|
|
|
Set `MICRONAS_USER` and `MICRONAS_PASS` in the environment (or `EnvironmentFile`). All routes require HTTP Basic Auth. Never expose this to the internet — LAN or Tailscale only.
|