feat(server/web-apps): init mattermost
This commit is contained in:
parent
a7cc5e4705
commit
e8ec88bd57
2 changed files with 70 additions and 4 deletions
60
modules/nixos/server/web-apps/mattermost/default.nix
Normal file
60
modules/nixos/server/web-apps/mattermost/default.nix
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.server.web-apps.mattermost;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.server.web-apps.mattermost = {
|
||||||
|
enable = lib.mkEnableOption "the Mattermost service";
|
||||||
|
port = lib.pantheon.mkPortOption 8065;
|
||||||
|
url = lib.pantheon.mkStrOption;
|
||||||
|
configDir = lib.pantheon.mkStrOption // {
|
||||||
|
default = "/etc/mattermost";
|
||||||
|
};
|
||||||
|
dataDir = lib.pantheon.mkStrOption // {
|
||||||
|
default = "/var/lib/mattermost";
|
||||||
|
};
|
||||||
|
logDir = lib.pantheon.mkStrOption // {
|
||||||
|
default = "/var/log/mattermost";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = config.services.postgresql.enable;
|
||||||
|
message = "You must enable a local instance of postgresql.";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
networking.firewall.allowedTCPPorts = lib.singleton cfg.port;
|
||||||
|
services.mattermost = {
|
||||||
|
enable = true;
|
||||||
|
inherit (cfg)
|
||||||
|
configDir
|
||||||
|
dataDir
|
||||||
|
logDir
|
||||||
|
port
|
||||||
|
;
|
||||||
|
host = "0.0.0.0";
|
||||||
|
siteName = "pantheon";
|
||||||
|
siteUrl = "https://${cfg.url}";
|
||||||
|
};
|
||||||
|
services.postgresql = {
|
||||||
|
ensureDatabases = lib.singleton config.services.mattermost.database.name;
|
||||||
|
ensureUsers = lib.singleton {
|
||||||
|
name = config.services.mattermost.database.user;
|
||||||
|
ensureDBOwnership = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
server.web-servers.nginx.proxies = lib.mkIf config.server.web-servers.nginx.enable (
|
||||||
|
lib.singleton {
|
||||||
|
source = cfg.url;
|
||||||
|
target = "http://${config.system.hostname}:${builtins.toString cfg.port}";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
|
@ -22,10 +22,16 @@
|
||||||
server = {
|
server = {
|
||||||
enableDDNS = true;
|
enableDDNS = true;
|
||||||
mountHelios = true;
|
mountHelios = true;
|
||||||
databases.mongodb.enable = true;
|
databases = {
|
||||||
databases.mysql.enable = true;
|
mongodb.enable = true;
|
||||||
databases.postgresql.enable = true;
|
mysql.enable = true;
|
||||||
web-apps.librechat.enable = true;
|
postgresql.enable = true;
|
||||||
|
};
|
||||||
|
web-apps = {
|
||||||
|
librechat.enable = true;
|
||||||
|
mattermost.enable = true;
|
||||||
|
mattermost.url = "mm.bwfiq.com";
|
||||||
|
};
|
||||||
web-servers.nginx.enable = true;
|
web-servers.nginx.enable = true;
|
||||||
web-servers.nginx.proxies = [
|
web-servers.nginx.proxies = [
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue