services/freescout: Initial setup

This commit is contained in:
Moritz 'e1mo' Fromm 2023-01-06 18:29:58 +01:00 committed by Moritz
parent 07779e14b3
commit 37a3ca4a70
7 changed files with 83 additions and 9 deletions

View file

@ -8,10 +8,6 @@ NixOS configuration for the [chaos.jetzt] project. They are very much work in pr
- Both need to be packaged for Nix - Both need to be packaged for Nix
- [Dokuwiki](https://www.dokuwiki.org/dokuwiki) - [Dokuwiki](https://www.dokuwiki.org/dokuwiki)
- Migrate away from SSO - Migrate away from SSO
- [freescout-helpdesk](https://github.com/freescout-helpdesk)
- @e1mo is already working on a nix package + NixOS module for their private nixfiles
- Migrate away from SSO
- Data migration
- [Matrix synapse](https://github.com/matrix-org/synapse) + [element-web](https://github.com/vector-im/element-web) - [Matrix synapse](https://github.com/matrix-org/synapse) + [element-web](https://github.com/vector-im/element-web)
- Data migration (synapse) - Data migration (synapse)
- Migrate away from SSO (synapse) - Migrate away from SSO (synapse)

View file

@ -17,6 +17,43 @@
"type": "indirect" "type": "indirect"
} }
}, },
"flake-utils_2": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"freescout-nix": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1673517701,
"narHash": "sha256-m6JDhvbljk+8dSqjJSQaovM9ibHhbPZv6d8I7PrlibI=",
"ref": "main",
"rev": "a6ef9643d794085afaa2b574bf7373090026d917",
"revCount": 8,
"type": "git",
"url": "https://cyberchaos.dev/e1mo/freescout-nix-flake"
},
"original": {
"ref": "main",
"type": "git",
"url": "https://cyberchaos.dev/e1mo/freescout-nix-flake"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1681217261, "lastModified": 1681217261,
@ -52,6 +89,7 @@
"root": { "root": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"freescout-nix": "freescout-nix",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"sops-nix": "sops-nix" "sops-nix": "sops-nix"
} }

View file

@ -5,19 +5,28 @@
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
freescout-nix = {
url = "git+https://cyberchaos.dev/e1mo/freescout-nix-flake?ref=main";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = inputs@{ self, nixpkgs, sops-nix, flake-utils }: let outputs = inputs@{ self, nixpkgs, sops-nix, flake-utils, freescout-nix }: let
overlay = import ./packages; overlay = import ./packages;
allOverlays = [
overlay
freescout-nix.overlays.default
];
pkgs = import nixpkgs { pkgs = import nixpkgs {
system = "x86_64-linux"; system = "x86_64-linux";
overlays = [ overlay ]; overlays = allOverlays;
}; };
defaultModules = [ defaultModules = [
sops-nix.nixosModules.sops sops-nix.nixosModules.sops
freescout-nix.nixosModules.freescout
./common/default.nix ./common/default.nix
{ {
nixpkgs.overlays = [ overlay ]; nixpkgs.overlays = allOverlays;
_module.args = { _module.args = {
inherit inputs; inherit inputs;
outputs = self; outputs = self;

View file

@ -7,6 +7,7 @@
../../services/website.nix ../../services/website.nix
../../services/vaultwarden.nix ../../services/vaultwarden.nix
../../services/dokuwiki.nix ../../services/dokuwiki.nix
../../services/freescout.nix
]; ];
system.stateVersion = "23.05"; system.stateVersion = "23.05";

View file

@ -7,6 +7,7 @@
../../services/website.nix ../../services/website.nix
../../services/vaultwarden.nix ../../services/vaultwarden.nix
../../services/dokuwiki.nix ../../services/dokuwiki.nix
../../services/freescout.nix
]; ];
system.stateVersion = "23.05"; system.stateVersion = "23.05";

View file

@ -6,6 +6,8 @@ smtp:
host: ENC[AES256_GCM,data:psXf+lg9433jS1GxH6HQQQ==,iv:wyq/VgWLNs4RbzxNHf4Ave8ZDhQeNPpYXJIdjLLMlr4=,tag:pQ4Wmf+PzSBsHO3eigx91Q==,type:str] host: ENC[AES256_GCM,data:psXf+lg9433jS1GxH6HQQQ==,iv:wyq/VgWLNs4RbzxNHf4Ave8ZDhQeNPpYXJIdjLLMlr4=,tag:pQ4Wmf+PzSBsHO3eigx91Q==,type:str]
alertmanager: alertmanager:
env: ENC[AES256_GCM,data:eYytFrXgsm4NCyS5F3oVNKsXwf5RL+zEFomMszP4fzb0HkLBk659uWZmqi7kIe8ptyUqqr6oAIV31alFo2TwpWuImvh4gbmaD0sfzesBmqhXyeA3cgi3EMGfMxsdLgUpHKGuJhgrRGLY9jDRI6VIwuLng1YmRw==,iv:YQYwC+Xef9I5IdUsBlTg3g7yRxWJe5Pi1LCur9g9/8w=,tag:U/A2lYu79urWjBFraQh16w==,type:str] env: ENC[AES256_GCM,data:eYytFrXgsm4NCyS5F3oVNKsXwf5RL+zEFomMszP4fzb0HkLBk659uWZmqi7kIe8ptyUqqr6oAIV31alFo2TwpWuImvh4gbmaD0sfzesBmqhXyeA3cgi3EMGfMxsdLgUpHKGuJhgrRGLY9jDRI6VIwuLng1YmRw==,iv:YQYwC+Xef9I5IdUsBlTg3g7yRxWJe5Pi1LCur9g9/8w=,tag:U/A2lYu79urWjBFraQh16w==,type:str]
freescout:
app_key: ENC[AES256_GCM,data:oumTXL1Iboi5ifO1S21sAOt9tMlM68CGggc9BimOf1N+TfwP24/762u9TeuTS4XbL4l7,iv:Z0ur/U5UbsUW7H6SASzWGOYizhWuY8GlRffa0QVEfRw=,tag:/0kvNryyeGGIwqSWWcdwxg==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -30,8 +32,8 @@ sops:
UXludFJ5UDEvN2pHMEQweWIvN0NYaFEKB7lVKrsB3eX77iKWwFAXp7LVl+fPcGOl UXludFJ5UDEvN2pHMEQweWIvN0NYaFEKB7lVKrsB3eX77iKWwFAXp7LVl+fPcGOl
8CkIBa/rkSWMe0xIetew60wIwx2ZVAv5TTDmKIZyQSTayOpbG3zcdg== 8CkIBa/rkSWMe0xIetew60wIwx2ZVAv5TTDmKIZyQSTayOpbG3zcdg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2022-12-30T22:26:42Z" lastmodified: "2023-01-06T15:51:57Z"
mac: ENC[AES256_GCM,data:KcJVntK3kAMH64ZHYoJmDCA7BroYJZhmMvtgbnjI44h5cwT9TyDOso2HO/x2z5XzTfPQfbW3tfhT1UmbaBHxBTkV7gJGU9fJ1xOrCRDoHuI9RTwGnCHKwQPLIWj56NMiC2CMf00pFpUlAPyDP/VHwRsc/laUPne2Da1MKZp/NOk=,iv:iHONd6xTjfVZNFELQVafAiljWYavu1DOZrS+d7pd8Zw=,tag:1Zh32h2OEtqKPoXy+8pypw==,type:str] mac: ENC[AES256_GCM,data:PPS3MV1tZJMtb1ITMhXTnseIBonpanjISFiUAV46LesJLDH7ag8UM8Vwgdrl5WOI3SIZcTiwvYGjRctLx69kWnbEJPFzg22EZSzvQJAIzdxHe1aac6th++5z2hPCFUp04/CYrB5zqIirku/pw7gLGzOlwVCvUJEvLf0V0mjn93A=,iv:v4RHMFHY/sADWv324thv8ZVTX41I3faRtXIyaB7QVWo=,tag:VXduStNDEPkFGPa9RyKSrw==,type:str]
pgp: pgp:
- created_at: "2022-12-23T19:08:38Z" - created_at: "2022-12-23T19:08:38Z"
enc: | enc: |

27
services/freescout.nix Normal file
View file

@ -0,0 +1,27 @@
{ pkgs, config, baseDomain, ... }:
{
sops.secrets."freescout/app_key" = {
owner = "freescout";
format = "yaml";
sopsFile = ../secrets/all/secrets.yaml;
};
services.freescout = {
enable = true;
domain = "support.${baseDomain}";
phpPackage = pkgs.php80;
settings = {
APP_KEY._secret = config.sops.secrets."freescout/app_key".path;
APP_ENV = "local";
APP_DEBUG = true;
};
databaseSetup.enable = true;
nginx = {
forceSSL = true;
enableACME = true;
};
};
}