server: do stuff
This commit is contained in:
@@ -29,6 +29,10 @@
|
||||
# Extras
|
||||
tangled.url = "git+https://tangled.sh/@tangled.sh/core";
|
||||
vscode-server.url = "github:nix-community/nixos-vscode-server";
|
||||
spacebar = {
|
||||
url = "github:spacebarchat/server";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
# Required by NixOS:
|
||||
|
||||
@@ -1,84 +1,109 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./modules/atproto-pds.nix
|
||||
./modules/cloudflare.nix
|
||||
./modules/tangled.nix
|
||||
../../modules/force.nix
|
||||
];
|
||||
imports = [
|
||||
./modules/atproto-pds.nix
|
||||
./modules/cloudflare.nix
|
||||
./modules/tangled.nix
|
||||
../../modules/force.nix
|
||||
./modules/gitea.nix
|
||||
./modules/spacebar.nix
|
||||
];
|
||||
|
||||
# gcc. shit breaks. wtf
|
||||
environment.sessionVariables.LD_LIBRARY_PATH = "${pkgs.gcc15}/lib";
|
||||
# gcc. shit breaks. wtf
|
||||
environment.sessionVariables.LD_LIBRARY_PATH = "${pkgs.gcc15}/lib";
|
||||
|
||||
services.vscode-server.enable = true;
|
||||
services.vscode-server.enable = true;
|
||||
|
||||
systemd.services.ocbwoy3-start-pm2 = {
|
||||
enable = true;
|
||||
description = "Start PM2";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "forking";
|
||||
User = "ocbwoy3";
|
||||
LimitNOFILE = "infinity";
|
||||
LimitNPROC = "infinity";
|
||||
LimitCORE = "infinity";
|
||||
Environment = "PM2_HOME=/home/ocbwoy3/.pm2";
|
||||
PIDFile = "/home/ocbwoy3/.pm2/pm2.pid";
|
||||
Restart = "on-failure";
|
||||
systemd.services.ocbwoy3-start-pm2 = {
|
||||
enable = true;
|
||||
description = "Start PM2";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "forking";
|
||||
User = "ocbwoy3";
|
||||
LimitNOFILE = "infinity";
|
||||
LimitNPROC = "infinity";
|
||||
LimitCORE = "infinity";
|
||||
Environment = "PM2_HOME=/home/ocbwoy3/.pm2";
|
||||
PIDFile = "/home/ocbwoy3/.pm2/pm2.pid";
|
||||
Restart = "on-failure";
|
||||
|
||||
ExecStart = "${pkgs.pm2}/bin/pm2 resurrect";
|
||||
ExecReload = "${pkgs.pm2}/bin/pm2 reload all";
|
||||
ExecStop = "${pkgs.pm2}/bin/pm2 kill";
|
||||
};
|
||||
};
|
||||
ExecStart = "${pkgs.pm2}/bin/pm2 resurrect";
|
||||
ExecReload = "${pkgs.pm2}/bin/pm2 reload all";
|
||||
ExecStop = "${pkgs.pm2}/bin/pm2 kill";
|
||||
};
|
||||
};
|
||||
|
||||
services.openssh.settings = {
|
||||
PubkeyAuthentication = "yes";
|
||||
TrustedUserCAKeys = "/etc/ssh/ca.pub";
|
||||
};
|
||||
services.openssh.settings = {
|
||||
PubkeyAuthentication = "yes";
|
||||
TrustedUserCAKeys = "/etc/ssh/ca.pub";
|
||||
};
|
||||
|
||||
services.openssh = {
|
||||
enable = lib.mkForce true;
|
||||
};
|
||||
services.openssh = {
|
||||
enable = lib.mkForce true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
fastfetch
|
||||
hyfetch
|
||||
pm2
|
||||
steam-run
|
||||
];
|
||||
environment.systemPackages = with pkgs; [
|
||||
fastfetch
|
||||
hyfetch
|
||||
pm2
|
||||
steam-run
|
||||
];
|
||||
|
||||
users.users.ocbwoy3 = {
|
||||
initialPassword = "thisisapassword42069!"; # not the type passwords i use
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "networkmanager" ];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
users.users.ocbwoy3 = {
|
||||
initialPassword = "thisisapassword42069!"; # not the type passwords i use
|
||||
isNormalUser = true;
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
services.mongodb = {
|
||||
enable = true;
|
||||
enableAuth = false;
|
||||
package = pkgs.mongodb-ce;
|
||||
replSetName = "rs0"; # dangerous
|
||||
bind_ip = "0.0.0.0";
|
||||
};
|
||||
services.mongodb = {
|
||||
enable = true;
|
||||
enableAuth = false;
|
||||
package = pkgs.mongodb-ce;
|
||||
replSetName = "rs0"; # dangerous
|
||||
bind_ip = "0.0.0.0";
|
||||
};
|
||||
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [ 22 443 3000 3001 8080 25565 ];
|
||||
allowedUDPPorts = [ 22 443 3000 3001 8080 25565 ];
|
||||
};
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
22
|
||||
443
|
||||
3000
|
||||
3001
|
||||
8080
|
||||
25565
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
22
|
||||
443
|
||||
3000
|
||||
3001
|
||||
8080
|
||||
25565
|
||||
];
|
||||
};
|
||||
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
accent = "blue";
|
||||
};
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
accent = "blue";
|
||||
gitea.enable = false;
|
||||
};
|
||||
|
||||
system.stateVersion = "23.05"; # DO NOT TOUCH
|
||||
system.stateVersion = "23.05"; # DO NOT TOUCH
|
||||
|
||||
}
|
||||
|
||||
@@ -1,26 +1,31 @@
|
||||
{ config, inputs, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
# TODO:
|
||||
# Upload PDS backup to /var/lib/pds
|
||||
# and specify secrets in /private/atproto-pds.env
|
||||
# TODO:
|
||||
# Upload PDS backup to /var/lib/pds
|
||||
# and specify secrets in /private/atproto-pds.env
|
||||
|
||||
services.bluesky-pds = {
|
||||
enable = true;
|
||||
pdsadmin.enable = true;
|
||||
environmentFiles = [ "/private/atproto-pds.env" ];
|
||||
settings = {
|
||||
PDS_CRAWLERS = "https://bsky.network";
|
||||
LOG_ENABLED = "true";
|
||||
PDS_HOSTNAME = "pds.ocbwoy3.dev";
|
||||
# PDS_VERSION = "\"ATProto PDS v69420\"";
|
||||
PDS_DID_PLC_URL = "https://plc.directory";
|
||||
PDS_CONTACT_EMAIL_ADDRESS = "ocbwoy3@ocbwoy3.dev";
|
||||
PDS_PRIVACY_POLICY_URL = "https://ocbwoy3.dev";
|
||||
PDS_TERMS_OF_SERVICE_URL = "https://ocbwoy3.dev";
|
||||
PDS_ACCEPTING_REPO_IMPORTS = "true";
|
||||
};
|
||||
};
|
||||
services.bluesky-pds = {
|
||||
enable = true;
|
||||
pdsadmin.enable = true;
|
||||
environmentFiles = [ "/private/atproto-pds.env" ];
|
||||
settings = {
|
||||
PDS_CRAWLERS = "https://bsky.network";
|
||||
LOG_ENABLED = "true";
|
||||
PDS_HOSTNAME = "pds.ocbwoy3.dev";
|
||||
# PDS_VERSION = "\"ATProto PDS v69420\"";
|
||||
PDS_DID_PLC_URL = "https://plc.directory";
|
||||
PDS_CONTACT_EMAIL_ADDRESS = "ocbwoy3@ocbwoy3.dev";
|
||||
PDS_PRIVACY_POLICY_URL = "https://ocbwoy3.dev";
|
||||
PDS_TERMS_OF_SERVICE_URL = "https://ocbwoy3.dev";
|
||||
PDS_ACCEPTING_REPO_IMPORTS = "true";
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,21 +1,26 @@
|
||||
{ config, inputs, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
cloudflared
|
||||
];
|
||||
environment.systemPackages = with pkgs; [
|
||||
cloudflared
|
||||
];
|
||||
|
||||
# lib.mkIf (isOCbwoy3 == true)
|
||||
services.cloudflared = {
|
||||
enable = true;
|
||||
tunnels = {
|
||||
"selfhost" = {
|
||||
# 2f83f704-e9f7-49fb-a6c4-d4a8f85d87e4
|
||||
default = "http_status:404";
|
||||
credentialsFile = "/private/cloudflared/selfhost.json";
|
||||
};
|
||||
};
|
||||
};
|
||||
# lib.mkIf (isOCbwoy3 == true)
|
||||
services.cloudflared = {
|
||||
enable = true;
|
||||
tunnels = {
|
||||
"selfhost" = {
|
||||
# 2f83f704-e9f7-49fb-a6c4-d4a8f85d87e4
|
||||
default = "http_status:404";
|
||||
credentialsFile = "/private/cloudflared/selfhost.json";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
34
hosts/server/modules/gitea.nix
Normal file
34
hosts/server/modules/gitea.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
services.gitea = {
|
||||
enable = true;
|
||||
|
||||
database = {
|
||||
type = "postgres";
|
||||
};
|
||||
|
||||
settings = {
|
||||
server = {
|
||||
DOMAIN = "git.ocbwoy3.dev";
|
||||
ROOT_URL = "https://git.ocbwoy3.dev/";
|
||||
HTTP_PORT = 2222;
|
||||
DISABLE_SSH = true;
|
||||
MAX_UPLOAD_FILE_SIZE = 5242880;
|
||||
};
|
||||
|
||||
attachment = {
|
||||
MAX_SIZE = 5; # MB (this is the one causing the 1024 KiB error)
|
||||
};
|
||||
|
||||
service = {
|
||||
DISABLE_REGISTRATION = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
17
hosts/server/modules/spacebar.nix
Normal file
17
hosts/server/modules/spacebar.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ inputs.spacebar.nixosModules.default ];
|
||||
|
||||
services.spacebarchat-server = {
|
||||
enable = true;
|
||||
package = inputs.spacebar.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
extraEnvironment.PORT = 4067;
|
||||
};
|
||||
}
|
||||
@@ -1,21 +1,26 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
services.tangled-knot = {
|
||||
enable = true;
|
||||
server = {
|
||||
listenAddr = "0.0.0.0:3003";
|
||||
owner = "did:plc:s7cesz7cr6ybltaryy4meb6y";
|
||||
hostname = "knot.ocbwoy3.dev";
|
||||
};
|
||||
};
|
||||
services.tangled.knot = {
|
||||
enable = true;
|
||||
server = {
|
||||
listenAddr = "0.0.0.0:3003";
|
||||
owner = "did:plc:s7cesz7cr6ybltaryy4meb6y";
|
||||
hostname = "knot.ocbwoy3.dev";
|
||||
};
|
||||
};
|
||||
|
||||
services.tangled-spindle = {
|
||||
enable = true;
|
||||
server = {
|
||||
listenAddr = "0.0.0.0:3004";
|
||||
owner = "did:plc:s7cesz7cr6ybltaryy4meb6y";
|
||||
hostname = "spindle.ocbwoy3.dev";
|
||||
};
|
||||
};
|
||||
services.tangled.spindle = {
|
||||
enable = true;
|
||||
server = {
|
||||
listenAddr = "0.0.0.0:3004";
|
||||
owner = "did:plc:s7cesz7cr6ybltaryy4meb6y";
|
||||
hostname = "spindle.ocbwoy3.dev";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,63 +1,75 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
# options nvidia NVreg_PreserveVideoMemoryAllocations=1
|
||||
boot.extraModprobeConfig = ''
|
||||
options nvidia_drm modeset=1 fbdev=1
|
||||
'';
|
||||
# options nvidia NVreg_PreserveVideoMemoryAllocations=1
|
||||
boot.extraModprobeConfig = ''
|
||||
options nvidia_drm modeset=1 fbdev=1
|
||||
'';
|
||||
|
||||
environment.variables = {
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
NVD_BACKEND = "direct";
|
||||
EGL_PLATFORM = "wayland";
|
||||
VDPAU_DRIVER = "va_gl";
|
||||
WAYLAND_DISPLAY = "wayland-1";
|
||||
DISPLAY = ":0";
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
MOZ_ENABLE_WAYLAND = "1"; # Enable Wayland for Firefox
|
||||
CHROMIUM_FLAGS = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-gpu-rasterization --enable-zero-copy"; # Enable Wayland and hardware acceleration for Chromium
|
||||
};
|
||||
environment.variables = {
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
NVD_BACKEND = "direct";
|
||||
EGL_PLATFORM = "wayland";
|
||||
VDPAU_DRIVER = "va_gl";
|
||||
WAYLAND_DISPLAY = "wayland-1";
|
||||
DISPLAY = ":0";
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
MOZ_ENABLE_WAYLAND = "1"; # Enable Wayland for Firefox
|
||||
CHROMIUM_FLAGS = "--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-gpu-rasterization --enable-zero-copy"; # Enable Wayland and hardware acceleration for Chromium
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = 1;
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
NVD_BACKEND = "direct";
|
||||
EGL_PLATFORM = "wayland";
|
||||
};
|
||||
environment.sessionVariables = {
|
||||
NIXOS_OZONE_WL = 1;
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
NVD_BACKEND = "direct";
|
||||
EGL_PLATFORM = "wayland";
|
||||
};
|
||||
|
||||
# obs moment
|
||||
# nixpkgs.config.cudaSupport = true;
|
||||
# obs moment
|
||||
# nixpkgs.config.cudaSupport = true;
|
||||
|
||||
hardware.graphics = { # hardware.graphics since NixOS 24.11
|
||||
enable = true;
|
||||
# driSupport = true;
|
||||
extraPackages = with pkgs; [
|
||||
nvidia-vaapi-driver
|
||||
libvdpau-va-gl
|
||||
vaapiVdpau
|
||||
libvdpau
|
||||
];
|
||||
};
|
||||
hardware.graphics = {
|
||||
# hardware.graphics since NixOS 24.11
|
||||
enable = true;
|
||||
# driSupport = true;
|
||||
extraPackages = with pkgs; [
|
||||
nvidia-vaapi-driver
|
||||
libvdpau-va-gl
|
||||
libva-vdpau-driver
|
||||
libvdpau
|
||||
];
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
powerManagement.finegrained = false;
|
||||
open = true;
|
||||
nvidiaSettings = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
};
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
powerManagement.finegrained = false;
|
||||
open = true;
|
||||
nvidiaSettings = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
};
|
||||
|
||||
boot.kernelModules = [ "nvidia-uvm" "nvidia-drm" ];
|
||||
boot.blacklistedKernelModules = [ "nouveau" ];
|
||||
boot.kernelModules = [
|
||||
"nvidia-uvm"
|
||||
"nvidia-drm"
|
||||
];
|
||||
boot.blacklistedKernelModules = [ "nouveau" ];
|
||||
|
||||
boot.kernelParams = [ "nvidia-drm.modeset=1" "nvidia-drm.fbdev=1" ];
|
||||
boot.kernelParams = [
|
||||
"nvidia-drm.modeset=1"
|
||||
"nvidia-drm.fbdev=1"
|
||||
];
|
||||
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user