diff --git a/hosts/ocelot/gotosocial.nix b/hosts/ocelot/gotosocial.nix new file mode 100644 index 0000000..5e492af --- /dev/null +++ b/hosts/ocelot/gotosocial.nix @@ -0,0 +1,53 @@ +{ ... }: +let + bind-address = "127.0.0.1"; + host = "test-gts.cherrykitten.xyz"; + port = 8553; +in +{ + services.gotosocial = { + enable = true; + settings = { + inherit bind-address host port; + application-name = "CherryKitten"; + setupPostgresqlDB = true; + landing-page-user = "sammy"; + + instance-expose-suspended = true; + instance-expose-suspended-web = true; + accounts-registration-open = false; + + media-image-max-size = 41943040; + media-video-max-size = 83886080; + media-description-max-chars = 3000; + media-remote-cache-days = 14; + media-emoji-local-max-size = 204800; + media-emoji-remote-max-size = 204800; + + statuses-max-chars = 69420; + statuses-cw-max-chars = 200; + statuses-poll-max-options = 10; + statuses-poll-option-max-chars = 150; + statuses-media-max-files = 16; + }; + }; + + networking.firewall.allowedTCPPorts = [ 80 443 ]; + services.nginx = { + enable = true; + clientMaxBodySize = "40M"; + virtualHosts = { + "${host}" = { + forceSSL = false; + locations = { + "/" = { + recommendedProxySettings = true; + proxyWebsockets = true; + proxyPass = "http://${bind-address}:${toString port}"; + }; + }; + }; + }; + }; +} + diff --git a/users/common/nvim/default.nix b/users/common/nvim/default.nix index 252038a..b456bee 100644 --- a/users/common/nvim/default.nix +++ b/users/common/nvim/default.nix @@ -11,6 +11,11 @@ ansible-language-server nil nixpkgs-fmt + # rust + rustc + cargo + rust-analyzer + rustfmt ]; plugins = with pkgs.vimPlugins; [ diff --git a/users/common/nvim/lua/plugins/lsp.lua b/users/common/nvim/lua/plugins/lsp.lua index a8abc4b..22ad8d2 100644 --- a/users/common/nvim/lua/plugins/lsp.lua +++ b/users/common/nvim/lua/plugins/lsp.lua @@ -12,6 +12,30 @@ return { }, }, }, + rust_analyzer = { + settings = { + ["rust_analyzer"] = { + check = { + command = "clippy", + }, + completion = { + fullFunctionSignatures = { + enable = true, + }, + }, + diagnostics = { + styleLints = { + enable = true, + }, + }, + imports = { + granularity = { + enforce = true, + }, + }, + }, + }, + }, }, }, },