@@ -9,6 +9,7 @@ in
|
|||||||
(import ./gitea { inherit user home; })
|
(import ./gitea { inherit user home; })
|
||||||
(import ./grafana { inherit user home; })
|
(import ./grafana { inherit user home; })
|
||||||
(import ./littlelink { inherit user home; })
|
(import ./littlelink { inherit user home; })
|
||||||
|
(import ./lore { inherit user home; })
|
||||||
(import ./media { inherit user home; })
|
(import ./media { inherit user home; })
|
||||||
(import ./nextcloud { inherit user home; })
|
(import ./nextcloud { inherit user home; })
|
||||||
(import ./ntfy { inherit user home; })
|
(import ./ntfy { inherit user home; })
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
|
||||||
system,
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
@@ -13,63 +12,61 @@ let
|
|||||||
inherit (hmConfig.virtualisation.quadlet) networks;
|
inherit (hmConfig.virtualisation.quadlet) networks;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home-manager.users.${user} = {
|
home-manager.users.${user}.virtualisation.quadlet.containers.littlelink.containerConfig = {
|
||||||
virtualisation.quadlet.containers.littlelink.containerConfig = {
|
image = "docker-archive:${selfPkgs.docker-littlelink-server}";
|
||||||
image = "docker-archive:${selfPkgs.docker-littlelink-server}";
|
networks = [ networks.traefik.ref ];
|
||||||
networks = [ networks.traefik.ref ];
|
environments = {
|
||||||
environments = {
|
NAME = "Nikolaos Karaolidis";
|
||||||
NAME = "Nikolaos Karaolidis";
|
META_TITLE = "Nikolaos Karaolidis";
|
||||||
META_TITLE = "Nikolaos Karaolidis";
|
META_DESCRIPTION = "Connect with me!";
|
||||||
META_DESCRIPTION = "Connect with me!";
|
META_AUTHOR = "Nikolaos Karaolidis";
|
||||||
META_AUTHOR = "Nikolaos Karaolidis";
|
META_INDEX_STATUS = "all";
|
||||||
META_INDEX_STATUS = "all";
|
|
||||||
|
|
||||||
LANG = "en";
|
LANG = "en";
|
||||||
THEME = "Dark";
|
THEME = "Dark";
|
||||||
|
|
||||||
OG_TITLE = "Nikolaos Karaolidis";
|
OG_TITLE = "Nikolaos Karaolidis";
|
||||||
OG_SITE_NAME = "Nikolaos Karaolidis";
|
OG_SITE_NAME = "Nikolaos Karaolidis";
|
||||||
OG_URL = "https://social.karaolidis.com";
|
OG_URL = "https://social.karaolidis.com";
|
||||||
|
|
||||||
OG_IMAGE = "https://cloud.karaolidis.com/s/profile/preview";
|
OG_IMAGE = "https://cloud.karaolidis.com/s/profile/preview";
|
||||||
OG_IMAGE_WIDTH = "400";
|
OG_IMAGE_WIDTH = "400";
|
||||||
OG_IMAGE_HEIGHT = "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_URL = "https://cloud.karaolidis.com/s/profile/preview";
|
||||||
AVATAR_2X_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_ALT = "Nick Karaolidis Profile Picture";
|
||||||
|
|
||||||
BUTTON_ORDER = lib.strings.concatStringsSep "," [
|
BUTTON_ORDER = lib.strings.concatStringsSep "," [
|
||||||
"GHOST"
|
"GHOST"
|
||||||
"EMAIL"
|
"EMAIL"
|
||||||
"LINKED_IN"
|
"LINKED_IN"
|
||||||
"GITEA"
|
"GITEA"
|
||||||
"GITHUB"
|
"GITHUB"
|
||||||
"INSTAGRAM"
|
"INSTAGRAM"
|
||||||
"DISCORD"
|
"DISCORD"
|
||||||
"REDDIT"
|
"REDDIT"
|
||||||
"YOUTUBE"
|
"YOUTUBE"
|
||||||
"STEAM"
|
"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`)"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
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`)"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -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`)"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
@@ -0,0 +1,23 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Karaolidis Lore</title>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 100vh;
|
||||||
|
width: 100%;
|
||||||
|
font-size: 10rem;
|
||||||
|
margin: 0;
|
||||||
|
background-color: #f8f8f8;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
🐌 🪴 🦇 🦐
|
||||||
|
</body>
|
||||||
|
</html>
|
@@ -21,6 +21,7 @@
|
|||||||
docker-littlelink-server = import ./docker/littlelink-server { inherit pkgs inputs system; };
|
docker-littlelink-server = import ./docker/littlelink-server { inherit pkgs inputs system; };
|
||||||
docker-mariadb = import ./docker/mariadb { inherit pkgs; };
|
docker-mariadb = import ./docker/mariadb { inherit pkgs; };
|
||||||
docker-nextcloud = import ./docker/nextcloud { inherit pkgs; };
|
docker-nextcloud = import ./docker/nextcloud { inherit pkgs; };
|
||||||
|
docker-nginx = import ./docker/nginx { inherit pkgs; };
|
||||||
docker-ntfy = import ./docker/ntfy { inherit pkgs; };
|
docker-ntfy = import ./docker/ntfy { inherit pkgs; };
|
||||||
docker-oidcwarden = import ./docker/oidcwarden { inherit pkgs inputs system; };
|
docker-oidcwarden = import ./docker/oidcwarden { inherit pkgs inputs system; };
|
||||||
docker-outline = import ./docker/outline { inherit pkgs; };
|
docker-outline = import ./docker/outline { inherit pkgs; };
|
||||||
|
66
packages/docker/nginx/default.nix
Normal file
66
packages/docker/nginx/default.nix
Normal file
@@ -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" = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@@ -21,7 +21,7 @@ let
|
|||||||
|
|
||||||
http {
|
http {
|
||||||
include ${pkgs.nginx}/conf/mime.types;
|
include ${pkgs.nginx}/conf/mime.types;
|
||||||
default_type application/octet-stream;
|
default_type application/octet-stream;
|
||||||
|
|
||||||
charset utf-8;
|
charset utf-8;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user