No description
Find a file
2025-10-30 18:52:33 +01:00
tests Fix tests 2025-10-30 17:24:36 +01:00
.gitignore Update freescout 2024-02-15 19:28:54 +01:00
0001-Fix-settings-page-error-due-to-unwritable-.env-file.patch Initial commit 2023-01-03 01:48:49 +01:00
deprecated-var-usage.patch Switch to php8.2 by default 2023-04-13 18:27:48 +02:00
dev-vm.nix Merge branch 'nix-flake-show' into 'main' 2025-07-29 14:38:36 +00:00
flake.lock flake.lock: Update 2025-10-30 17:24:34 +01:00
flake.nix Fix nix flake show 2025-06-28 03:56:22 +02:00
module.nix Fix deprecated reference to pkgs.system 2025-10-30 18:52:33 +01:00
package.nix Allow modules installation 2025-06-28 03:43:23 +02:00
README.md Add getting started docs 2025-06-03 12:13:34 -07:00

Freescout Nix Flake

A Nix flake that packages Freescout as both a package and a NixOS module.

Getting started

This assumes you have a NixOS machine managed with flakes.

Add Freescout Nix Flake to your flake.nix:

  inputs.freescout = {
    url = "git+https://cyberchaos.dev/e1mo/freescout-nix-flake.git";
    inputs.nixpkgs.follows = "nixpkgs";
  };

Import the Freescout module and enable it in your configuration.nix:

{
  inputs, # Your flake inputs. Often made available via `specialArgs`.
  ...
}:

{
  imports = [
    inputs.freescout.nixosModules.freescout
  ];

  services.freescout = {
    enable = true;
    domain = "freescout.example.org"; # Replace with a domain you control.

    nginx = {
      forceSSL = true;
      enableACME = true;
    };

    # Generate this `APP_KEY` on the server.
    #
    #   $ echo "base64:$(nix run nixpkgs#openssl -- rand -base64 32)" > /run/secrets/freescout-app-key
    #
    # Be sure to back up this secret. See
    # <https://wiki.nixos.org/wiki/Comparison_of_secret_managing_schemes> for
    # alternate ways of managing secrets.
    settings.APP_KEY._secret = "/run/secrets/freescout-app-key";
  };

  networking.firewall.allowedTCPPorts = [ 80 443 ];
}

After deploying the above, create your first admin user:

/var/lib/freescout/artisan freescout:create-user --role=admin --firstName=Free --lastName=Scout --email admin@example.com

You should now be able to log into Freescout at https://freescout.example.org.

Check the system status at https://freescout.example.org/system/status. We have a few known issues (see list below), but let us know if you see anything else!