Ricky Kresslein

Gitea On NixOS With Docker

2022-10-05

There is no need for a long introduction here. This is the contents of my gitea.nix file. All of the data is saved on an external (encrypted) SSD, called /media.

{ config, pkgs, ... }:

{

  # Gitea
  virtualisation.oci-containers.containers."gitea" = {
    autoStart = true;
    image = "gitea/gitea:latest";
    environment = {
      USER_UID = "1000";
      USER_GID = "1000";
    };
    volumes = [
      "/media/Containers/Gitea:/data"
      "/etc/timezone:/etc/timezone:ro"
      "/etc/localtime:/etc/localtime:ro"
    ];
    ports = [
      "3000:3000"
      "222:22"
    ];
  };

}

Since that's in its own .nix file, we need to add it to the imports section of the /etc/nixos/configuration.nix, like so:

imports = [
  ./hardware-configuration.nix
  # Docker containers
  ./containers/gitea.nix
];

That's it! Run sudo nixos-rebuild switch and, once it downloads and starts, you should have a running Gitea container on your NixOS box!