added Transmission, added VPS-caddy files
This commit is contained in:
parent
66b52e0950
commit
9c6da58b21
8 changed files with 87 additions and 5 deletions
14
README.md
14
README.md
|
@ -1,15 +1,21 @@
|
||||||
# NixOS - Knossos
|
# NixOS - Knossos
|
||||||
|
|
||||||
Test system.
|
My test system.
|
||||||
|
|
||||||
## Goals
|
## Goals
|
||||||
- Learn Nix.
|
- Learn Nix.
|
||||||
- Attempt to make homelab, a la Yunohost...but declarative
|
- Attempt to make homelab, a la Yunohost...but declarative
|
||||||
- Try to avoid Docker
|
- Try to avoid Docker
|
||||||
|
|
||||||
## Tasks
|
## Tasks
|
||||||
[ x ] - ZFS root file system
|
- [X] ZFS for root file system
|
||||||
[ x ]- Tailscale --> VPS --> domain name
|
- [X] Tailscale
|
||||||
[ ] - Need an auth system
|
- [ ]--> --> domain name
|
||||||
|
- [X] Setup Jellyfin
|
||||||
|
- [X] Setup calibre-web
|
||||||
|
- [ ] Setup Transmission
|
||||||
|
- [ ] Setup Nextcloud
|
||||||
|
- [ ] Setup systemwide auth system - LDAP? OAuth?
|
||||||
|
|
||||||
## System Information
|
## System Information
|
||||||
```
|
```
|
||||||
|
|
30
VPS-caddy/Caddyfile
Normal file
30
VPS-caddy/Caddyfile
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
email youremail@email.com
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
*.home.mydomain.com {
|
||||||
|
|
||||||
|
vars {
|
||||||
|
# IP address of My Tailscale Server
|
||||||
|
tailscale_ip 100.0.0.0
|
||||||
|
}
|
||||||
|
|
||||||
|
tls {
|
||||||
|
dns gandi APIKEYHERE
|
||||||
|
}
|
||||||
|
|
||||||
|
@jellyfin host jellyfin.home.mydomain.com
|
||||||
|
handle @jellyfin {
|
||||||
|
reverse_proxy {vars.tailscale_ip}:8096
|
||||||
|
}
|
||||||
|
@books host books.home.mydomain.com
|
||||||
|
handle @books {
|
||||||
|
reverse_proxy {vars.tailscale_ip}:8083
|
||||||
|
}
|
||||||
|
# Fallback for otherwise unhandled domains
|
||||||
|
handle {
|
||||||
|
abort
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
8
VPS-caddy/Dockerfile
Normal file
8
VPS-caddy/Dockerfile
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
FROM caddy:2.8.4-builder-alpine AS builder
|
||||||
|
|
||||||
|
RUN xcaddy build \
|
||||||
|
--with github.com/caddy-dns/gandi
|
||||||
|
|
||||||
|
FROM caddy:2.8.4-alpine
|
||||||
|
|
||||||
|
COPY --from=builder /usr/bin/caddy /usr/bin/caddy
|
7
VPS-caddy/README.md
Normal file
7
VPS-caddy/README.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# Run Your Homelab Behind your VPS
|
||||||
|
https://blog.arkadi.one/p/run-your-homelab-behind-your-vps/
|
||||||
|
|
||||||
|
## Files in this directory:
|
||||||
|
- Dockerfile - to build a custom Caddy executable with gandi registrar module
|
||||||
|
- docker-compose.yml - to run Caddy
|
||||||
|
- Caddyfile - your caddy settings for a wildcard DNS
|
23
VPS-caddy/docker-compose.yml
Normal file
23
VPS-caddy/docker-compose.yml
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
services:
|
||||||
|
caddy:
|
||||||
|
build: .
|
||||||
|
container_name: Caddy
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 443:443
|
||||||
|
- 443:443/udp
|
||||||
|
env_file:
|
||||||
|
- secrets.env
|
||||||
|
volumes:
|
||||||
|
# I don't like using Docker volumes
|
||||||
|
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
||||||
|
- ./data:/data
|
||||||
|
- ./config:/config
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- caddy
|
||||||
|
networks:
|
||||||
|
caddy:
|
||||||
|
name: caddy
|
|
@ -15,6 +15,7 @@
|
||||||
./services/calibre-web.nix
|
./services/calibre-web.nix
|
||||||
./services/glances.nix
|
./services/glances.nix
|
||||||
./services/fail2ban.nix
|
./services/fail2ban.nix
|
||||||
|
./services/transmission.nix
|
||||||
];
|
];
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
services.jellyfin = {
|
services.jellyfin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
dataDir = "/var/lib/jellyfin"; #default
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
|
|
|
@ -3,9 +3,15 @@
|
||||||
# https://mynixos.com/nixpkgs/options/services.transmission
|
# https://mynixos.com/nixpkgs/options/services.transmission
|
||||||
|
|
||||||
|
|
||||||
services.transmission {
|
services.transmission = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs.transmission_4;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
|
openPeerPorts = true;
|
||||||
|
openRPCPort = true;
|
||||||
|
settings = {
|
||||||
|
rpc-bind-address = "0.0.0.0";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue