Enables the auth providers and transactional email flows the self-hosted Supabase was missing compared to the cloud instance: - GoTrue now accepts Google and Apple OAuth (web flow); Apple client-secret JWT is signed fresh on every activation from the SOPS-stored .p8 so there's no 6-month rotation ritual. - SMTP points at mail.cloonar.com:587 with SASL auth via a new `supabase` LDAP account; a `noreply@fueltide.io` mailAlias lets that account send as the fueltide.io address. - rspamd on mail.cloonar.com gets a per-domain DKIM key for fueltide.io (selector `default`) so outbound mail is signed. - MAILER_AUTOCONFIRM is off so signup confirmation + password reset actually go through email. - SITE_URL + URI_ALLOW_LIST point at app.fueltide.io / stage so links in emails and OAuth redirects land in the right app. FUELTIDE_AUTH_SETUP.md documents the manual steps (LDAP entries, SOPS additions, DNS records, Google/Apple console setup) that must be completed before merging.
49 lines
1.1 KiB
Nix
49 lines
1.1 KiB
Nix
{ config, pkgs, ... }:
|
|
{
|
|
imports = [
|
|
./utils/bento.nix
|
|
./utils/modules/sops.nix
|
|
./utils/modules/lego/lego.nix
|
|
|
|
# ./modules/self-service-password.nix
|
|
./modules/rspamd.nix
|
|
./modules/openldap.nix
|
|
./modules/dovecot.nix
|
|
./modules/postfix.nix
|
|
./modules/dkim-fueltide.nix
|
|
|
|
./utils/modules/borgbackup.nix
|
|
./utils/modules/promtail
|
|
./modules/metrics
|
|
./modules/set-nix-channel.nix # Automatically manage nix-channel from /var/bento/channel
|
|
|
|
./hardware-configuration.nix
|
|
];
|
|
|
|
|
|
sops.defaultSopsFile = ./secrets.yaml;
|
|
sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
|
|
|
networking.hostName = "mail";
|
|
networking.domain = "cloonar.com";
|
|
|
|
environment.systemPackages = with pkgs; [ vim ];
|
|
|
|
services.openssh.enable = true;
|
|
users.users.root.openssh.authorizedKeys.keys = import ./utils/ssh-keys.nix;
|
|
|
|
# backups
|
|
borgbackup.repo = "u149513-sub7@u149513-sub7.your-backup.de:borg";
|
|
|
|
networking.firewall = {
|
|
enable = true;
|
|
allowedTCPPorts = [ 22 80 443 ];
|
|
};
|
|
|
|
nix.gc = {
|
|
automatic = true;
|
|
options = "--delete-older-than 60d";
|
|
};
|
|
|
|
system.stateVersion = "22.11";
|
|
}
|