Add basic services necessary for running projects
diff --git a/modules/caddy.nix b/modules/caddy.nix
new file mode 100644
index 0000000..44a5a29
--- /dev/null
+++ b/modules/caddy.nix
@@ -0,0 +1,4 @@
+{ config, pkgs, ... }: {
+ services.caddy.enable = true;
+ services.caddy.extraConfig = builtins.readFile ./caddy/Caddyfile;
+}
diff --git a/modules/caddy/Caddyfile b/modules/caddy/Caddyfile
new file mode 100644
index 0000000..e333b94
--- /dev/null
+++ b/modules/caddy/Caddyfile
@@ -0,0 +1,20 @@
+
+http://api.clicks.codes {
+ handle_path /nucleus {
+ reverse_proxy http://127.0.0.1:10000 {
+ trusted_proxies 192.168.81.136
+ }
+ }
+}
+
+http://clicks.codes {
+ reverse_proxy http://127.0.0.1:3000 {
+ trusted_proxies 192.168.81.136
+ }
+}
+
+http://www.clicks.codes {
+ redir https://clicks.codes{uri} {
+ trusted_proxies 192.168.81.136
+ }
+}
diff --git a/modules/fuck.nix b/modules/fuck.nix
new file mode 100644
index 0000000..bb5810f
--- /dev/null
+++ b/modules/fuck.nix
@@ -0,0 +1,5 @@
+{ config, pkgs, ... }: {
+ programs.thefuck.enable=true;
+ programs.thefuck.alias="fuck";
+}
+
diff --git a/modules/git.nix b/modules/git.nix
new file mode 100644
index 0000000..26e2928
--- /dev/null
+++ b/modules/git.nix
@@ -0,0 +1,56 @@
+{ config, pkgs, ... }: {
+ environment.systemPackages = with pkgs; [ gh git ];
+
+ services.gitea = {
+ enable = true;
+ rootUrl = "https://git.clicks.codes/";
+ httpPort = 6064;
+ settings.mailer = {
+ ENABLED = true;
+ FROM = "git@clicks.codes";
+ PROTOCOL = "smtps";
+ SMTP_ADDR = "smtp.coded.codes";
+ SMTP_PORT = "465";
+ USER = "git@clicks.codes";
+ PASSWD = "ilIfASM@U5Z4XOEoH99gA8jPvGiOiEdx";
+ HELO_HOSTNAME = "git.clicks.codes";
+ };
+ settings.service = {
+ REGISTER_EMAIL_CONFIG = false;
+ ENABLE_NOTIFY_MAIL = false;
+ DISABLE_REGISTRATION = true;
+ ENABLE_CAPTCHA = false;
+ REQUIRE_SIGNIN_VIEW = false;
+ DEFAULT_KEEP_EMAIL_PRIVATE = false;
+ DEFAULT_ENABLE_TIMETRACKING = true;
+ };
+ settings.server = {
+ SSH_DOMAIN = "ssh.clicks.codes";
+ DOMAIN = "localhost";
+ DISABLE_SSH = false;
+ OFFLINE_MODE = false;
+ };
+ settings.openid.ENABLE_OPENID_SIGNIN = true;
+ settings.log = {
+ MODE = "console";
+ LEVEL = "Info";
+ ROUTER = "console";
+ };
+ settings.repository = {
+ ENABLE_PUSH_CREATE_USER = true;
+ ENABLE_PUSH_CREATE_ORG = true;
+ };
+ settings."repository.pull-request".DEFAULT_MERGE_STYLE = "merge";
+ settings."repository.signing".DEFAULT_TRUST_MODEL = "committer";
+ settings.security = {
+ INSTALL_LOCK = true;
+ PASSWORD_HASH_ALGO = "pbkdf2";
+ };
+ settings.indexer = {
+ REPO_INDEXER_ENABLED = true;
+ UPDATE_BUFFER_LEN = 20;
+ MAX_FILE_SIZE = 1048576;
+ };
+ settings.session.PROVIDER = "file";
+ };
+}
diff --git a/modules/mongodb.nix b/modules/mongodb.nix
index 26570f1..b694468 100644
--- a/modules/mongodb.nix
+++ b/modules/mongodb.nix
@@ -1,7 +1,8 @@
{ config, pkgs, ... }: {
- environment.systemPackages = [ pkgs.mongosh ];
+ environment.systemPackages = [ pkgs.mongosh pkgs.mongodb-tools ];
services.mongodb.enable = true;
services.mongodb.enableAuth = true;
- services.mongodb.initialRootPassword = "fYhw&%6frpcL9zcJ5p^b^tquP0kyVE9hehoLY4lY2zUUzbIjEyDPhAIMe2M";
+ services.mongodb.bind_ip = "0.0.0.0";
+ services.mongodb.initialRootPassword = "changeme";
services.mongodb.package = pkgs.mongodb-6_0;
}
diff --git a/modules/node.nix b/modules/node.nix
new file mode 100644
index 0000000..d5f832f
--- /dev/null
+++ b/modules/node.nix
@@ -0,0 +1,8 @@
+{ config, pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ nodejs-19_x
+ nodePackages.typescript
+ yarn
+ nodePackages.pm2
+ ];
+}