diff --git a/hosts/jupiter/users/storm/configs/console/podman/default.nix b/hosts/jupiter/users/storm/configs/console/podman/default.nix index 95e3e91..a158427 100644 --- a/hosts/jupiter/users/storm/configs/console/podman/default.nix +++ b/hosts/jupiter/users/storm/configs/console/podman/default.nix @@ -9,6 +9,7 @@ in (import ./gitea { inherit user home; }) (import ./grafana { inherit user home; }) (import ./littlelink { inherit user home; }) + (import ./lore { inherit user home; }) (import ./media { inherit user home; }) (import ./nextcloud { inherit user home; }) (import ./ntfy { inherit user home; }) diff --git a/hosts/jupiter/users/storm/configs/console/podman/littlelink/default.nix b/hosts/jupiter/users/storm/configs/console/podman/littlelink/default.nix index d1687d5..ffabc5b 100644 --- a/hosts/jupiter/users/storm/configs/console/podman/littlelink/default.nix +++ b/hosts/jupiter/users/storm/configs/console/podman/littlelink/default.nix @@ -3,7 +3,6 @@ config, inputs, lib, - pkgs, system, ... }: @@ -13,63 +12,61 @@ let inherit (hmConfig.virtualisation.quadlet) networks; in { - home-manager.users.${user} = { - virtualisation.quadlet.containers.littlelink.containerConfig = { - image = "docker-archive:${selfPkgs.docker-littlelink-server}"; - networks = [ networks.traefik.ref ]; - environments = { - NAME = "Nikolaos Karaolidis"; - META_TITLE = "Nikolaos Karaolidis"; - META_DESCRIPTION = "Connect with me!"; - META_AUTHOR = "Nikolaos Karaolidis"; - META_INDEX_STATUS = "all"; + home-manager.users.${user}.virtualisation.quadlet.containers.littlelink.containerConfig = { + image = "docker-archive:${selfPkgs.docker-littlelink-server}"; + networks = [ networks.traefik.ref ]; + environments = { + NAME = "Nikolaos Karaolidis"; + META_TITLE = "Nikolaos Karaolidis"; + META_DESCRIPTION = "Connect with me!"; + META_AUTHOR = "Nikolaos Karaolidis"; + META_INDEX_STATUS = "all"; - LANG = "en"; - THEME = "Dark"; + LANG = "en"; + THEME = "Dark"; - OG_TITLE = "Nikolaos Karaolidis"; - OG_SITE_NAME = "Nikolaos Karaolidis"; - OG_URL = "https://social.karaolidis.com"; + OG_TITLE = "Nikolaos Karaolidis"; + OG_SITE_NAME = "Nikolaos Karaolidis"; + OG_URL = "https://social.karaolidis.com"; - OG_IMAGE = "https://cloud.karaolidis.com/s/profile/preview"; - OG_IMAGE_WIDTH = "400"; - OG_IMAGE_HEIGHT = "400"; + OG_IMAGE = "https://cloud.karaolidis.com/s/profile/preview"; + OG_IMAGE_WIDTH = "400"; + OG_IMAGE_HEIGHT = "400"; - FAVICON_URL = "https://cloud.karaolidis.com/s/jupiter-favicon/preview"; + FAVICON_URL = "https://cloud.karaolidis.com/s/jupiter-favicon/preview"; - AVATAR_URL = "https://cloud.karaolidis.com/s/profile/preview"; - AVATAR_2X_URL = "https://cloud.karaolidis.com/s/profile/preview"; - AVATAR_ALT = "Nick Karaolidis Profile Picture"; + AVATAR_URL = "https://cloud.karaolidis.com/s/profile/preview"; + AVATAR_2X_URL = "https://cloud.karaolidis.com/s/profile/preview"; + AVATAR_ALT = "Nick Karaolidis Profile Picture"; - BUTTON_ORDER = lib.strings.concatStringsSep "," [ - "GHOST" - "EMAIL" - "LINKED_IN" - "GITEA" - "GITHUB" - "INSTAGRAM" - "DISCORD" - "REDDIT" - "YOUTUBE" - "STEAM" - ]; - - GHOST = "https://blog.karaolidis.com/"; - EMAIL = "nick@karaolidis.com"; - EMAIL_TEXT = "E-mail"; - LINKED_IN = "https://www.linkedin.com/in/nikolaos-karaolidis"; - GITEA = "https://git.karaolidis.com/karaolidis"; - GITHUB = "https://github.com/karaolidis"; - INSTAGRAM = "https://www.instagram.com/karaolidis"; - DISCORD = "https://discord.com/users/Nick%%20Karaolidis#1594"; - REDDIT = "https://www.reddit.com/user/Nikas36"; - YOUTUBE = "https://www.youtube.com/@karaolidis"; - STEAM = "https://steamcommunity.com/profiles/76561198118267119"; - }; - labels = [ - "traefik.enable=true" - "traefik.http.routers.littlelink.rule=Host(`social.karaolidis.com`)" + BUTTON_ORDER = lib.strings.concatStringsSep "," [ + "GHOST" + "EMAIL" + "LINKED_IN" + "GITEA" + "GITHUB" + "INSTAGRAM" + "DISCORD" + "REDDIT" + "YOUTUBE" + "STEAM" ]; + + GHOST = "https://blog.karaolidis.com/"; + EMAIL = "nick@karaolidis.com"; + EMAIL_TEXT = "E-mail"; + LINKED_IN = "https://www.linkedin.com/in/nikolaos-karaolidis"; + GITEA = "https://git.karaolidis.com/karaolidis"; + GITHUB = "https://github.com/karaolidis"; + INSTAGRAM = "https://www.instagram.com/karaolidis"; + DISCORD = "https://discord.com/users/Nick%%20Karaolidis#1594"; + REDDIT = "https://www.reddit.com/user/Nikas36"; + YOUTUBE = "https://www.youtube.com/@karaolidis"; + STEAM = "https://steamcommunity.com/profiles/76561198118267119"; }; + labels = [ + "traefik.enable=true" + "traefik.http.routers.littlelink.rule=Host(`social.karaolidis.com`)" + ]; }; } diff --git a/hosts/jupiter/users/storm/configs/console/podman/lore/default.nix b/hosts/jupiter/users/storm/configs/console/podman/lore/default.nix new file mode 100644 index 0000000..6c5155e --- /dev/null +++ b/hosts/jupiter/users/storm/configs/console/podman/lore/default.nix @@ -0,0 +1,23 @@ +{ user, home }: +{ + config, + inputs, + system, + ... +}: +let + selfPkgs = inputs.self.packages.${system}; + hmConfig = config.home-manager.users.${user}; + inherit (hmConfig.virtualisation.quadlet) networks; +in +{ + home-manager.users.${user}.virtualisation.quadlet.containers.lore.containerConfig = { + image = "docker-archive:${selfPkgs.docker-nginx}"; + networks = [ networks.traefik.ref ]; + volumes = [ "${./index.html}:/var/www/nginx/index.html:ro" ]; + labels = [ + "traefik.enable=true" + "traefik.http.routers.lore.rule=Host(`lore.karaolidis.com`)" + ]; + }; +} diff --git a/hosts/jupiter/users/storm/configs/console/podman/lore/index.html b/hosts/jupiter/users/storm/configs/console/podman/lore/index.html new file mode 100644 index 0000000..20184bb --- /dev/null +++ b/hosts/jupiter/users/storm/configs/console/podman/lore/index.html @@ -0,0 +1,23 @@ + + + + Karaolidis Lore + + + + + + 🐌 🪴 🦇 🦐 + + diff --git a/packages/default.nix b/packages/default.nix index 4dd3139..9f1c2f1 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -21,6 +21,7 @@ docker-littlelink-server = import ./docker/littlelink-server { inherit pkgs inputs system; }; docker-mariadb = import ./docker/mariadb { inherit pkgs; }; docker-nextcloud = import ./docker/nextcloud { inherit pkgs; }; + docker-nginx = import ./docker/nginx { inherit pkgs; }; docker-ntfy = import ./docker/ntfy { inherit pkgs; }; docker-oidcwarden = import ./docker/oidcwarden { inherit pkgs inputs system; }; docker-outline = import ./docker/outline { inherit pkgs; }; diff --git a/packages/docker/nginx/default.nix b/packages/docker/nginx/default.nix new file mode 100644 index 0000000..b62b9ec --- /dev/null +++ b/packages/docker/nginx/default.nix @@ -0,0 +1,66 @@ +{ pkgs, ... }: +let + nginxConfig = pkgs.writeTextDir "/etc/nginx/nginx.conf" '' + user root; + daemon off; + pid /var/run/nginx.pid; + + events { } + + http { + include ${pkgs.nginx}/conf/mime.types; + default_type application/octet-stream; + + charset utf-8; + + access_log off; + error_log /dev/stderr; + + server { + listen 80 default_server; + + root /var/www/nginx; + index index.html; + + location / { + try_files $uri $uri/ /index.html; + } + } + } + ''; +in +pkgs.dockerTools.buildImage { + name = "nginx"; + fromImage = import ../base { inherit pkgs; }; + + copyToRoot = pkgs.buildEnv { + name = "root"; + paths = with pkgs; [ + nginxConfig + nginx + ]; + pathsToLink = [ + "/bin" + "/etc" + ]; + }; + + runAsRoot = '' + mkdir -p /var/run /var/log/nginx + ''; + + config = { + Entrypoint = [ "nginx" ]; + Cmd = [ + "-c" + "/etc/nginx/nginx.conf" + ]; + WorkingDir = "/var/www/nginx"; + Volumes = { + "/var/www/nginx" = { }; + }; + ExposedPorts = { + "80/tcp" = { }; + }; + }; +} diff --git a/packages/docker/shlink-web-client/default.nix b/packages/docker/shlink-web-client/default.nix index 13ca8eb..3a04c52 100644 --- a/packages/docker/shlink-web-client/default.nix +++ b/packages/docker/shlink-web-client/default.nix @@ -21,7 +21,7 @@ let http { include ${pkgs.nginx}/conf/mime.types; - default_type application/octet-stream; + default_type application/octet-stream; charset utf-8;