Emitter: Switch to Forgejo
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./gitea.nix
|
./forgejo.nix
|
||||||
./tls_sni.nix
|
./tls_sni.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
@ -2,18 +2,17 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
domain = "git.25120.org";
|
domain = "git.25120.org";
|
||||||
giteaCustom = pkgs.callPackage ../packages/directory.nix {
|
forgejoCustom = pkgs.callPackage ../packages/directory.nix {
|
||||||
name = "gitea-custom";
|
name = "forgejo-custom";
|
||||||
source = ./gitea-custom;
|
source = ./forgejo-custom;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
services.gitea = {
|
services.forgejo = {
|
||||||
enable = true;
|
enable = true;
|
||||||
appName = "${domain}";
|
|
||||||
database = {
|
database = {
|
||||||
type = "postgres";
|
type = "postgres";
|
||||||
passwordFile = "/secrets/gitea_db_password";
|
passwordFile = "/secrets/forgejo_db_password";
|
||||||
createDatabase = false;
|
createDatabase = false;
|
||||||
};
|
};
|
||||||
repositoryRoot = "/data/git/repositories";
|
repositoryRoot = "/data/git/repositories";
|
||||||
|
@ -22,12 +21,13 @@ in
|
||||||
contentDir = "/data/git/data/lfs";
|
contentDir = "/data/git/data/lfs";
|
||||||
};
|
};
|
||||||
settings = let
|
settings = let
|
||||||
|
python = pkgs.python311;
|
||||||
docutils =
|
docutils =
|
||||||
pkgs.python310.withPackages (ps: with ps; [
|
python.withPackages (ps: with ps; [
|
||||||
docutils # Provides rendering of ReStructured Text files
|
docutils # Provides rendering of ReStructured Text files
|
||||||
pygments # Provides syntax highlighting
|
pygments # Provides syntax highlighting
|
||||||
]);
|
]);
|
||||||
nbconvert = pkgs.python310.withPackages (ps: with ps; [
|
nbconvert = python.withPackages (ps: with ps; [
|
||||||
jupyter
|
jupyter
|
||||||
ipykernel
|
ipykernel
|
||||||
nbconvert
|
nbconvert
|
||||||
|
@ -41,7 +41,7 @@ in
|
||||||
input_file="$1"
|
input_file="$1"
|
||||||
|
|
||||||
command="${nbconvert}/bin/jupyter nbconvert --stdout --to html --template basic"
|
command="${nbconvert}/bin/jupyter nbconvert --stdout --to html --template basic"
|
||||||
cache_directory="${config.services.gitea.stateDir}/markup_cache/jupyter"
|
cache_directory="${config.services.forgejo.stateDir}/markup_cache/jupyter"
|
||||||
max_cache_file_count="${toString max_cached_jupyter_notebooks}"
|
max_cache_file_count="${toString max_cached_jupyter_notebooks}"
|
||||||
|
|
||||||
cache_file="$cache_directory/$(md5sum "$input_file" | cut -d' ' -f1)"
|
cache_file="$cache_directory/$(md5sum "$input_file" | cut -d' ' -f1)"
|
||||||
|
@ -64,6 +64,7 @@ in
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
DEFAULT.APP_NAME = "${domain}";
|
||||||
server = {
|
server = {
|
||||||
SSH_PORT = lib.head config.services.openssh.ports;
|
SSH_PORT = lib.head config.services.openssh.ports;
|
||||||
ROOT_URL = "https://${domain}/";
|
ROOT_URL = "https://${domain}/";
|
||||||
|
@ -72,6 +73,7 @@ in
|
||||||
};
|
};
|
||||||
service.DISABLE_REGISTRATION = true;
|
service.DISABLE_REGISTRATION = true;
|
||||||
session.COOKIE_SECURE = true;
|
session.COOKIE_SECURE = true;
|
||||||
|
UI.DEFAULT_THEME = "forgejo-auto";
|
||||||
"markup.restructuredtext" = {
|
"markup.restructuredtext" = {
|
||||||
ENABLED = true;
|
ENABLED = true;
|
||||||
FILE_EXTENSIONS = ".rst";
|
FILE_EXTENSIONS = ".rst";
|
||||||
|
@ -103,11 +105,11 @@ in
|
||||||
services.postgresql = {
|
services.postgresql = {
|
||||||
enable = true;
|
enable = true;
|
||||||
authentication = ''
|
authentication = ''
|
||||||
local gitea all ident map=gitea-users
|
local forgejo all ident map=forgejo-users
|
||||||
'';
|
'';
|
||||||
# Map the gitea user to postgresql
|
# Map the forgejo user to postgresql
|
||||||
identMap = ''
|
identMap = ''
|
||||||
gitea-users gitea gitea
|
forgejo-users forgejo forgejo
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -124,14 +126,14 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# users.users.gitea.extraGroups = [ "keys" ];
|
# users.users.forgejo.extraGroups = [ "keys" ];
|
||||||
systemd.services.gitea = {
|
systemd.services.forgejo = {
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ReadOnlyPaths = [ "/secrets" ];
|
ReadOnlyPaths = [ "/secrets" ];
|
||||||
};
|
};
|
||||||
preStart = ''
|
preStart = ''
|
||||||
cp -frT "${giteaCustom}/" "${config.services.gitea.stateDir}/custom/"
|
cp -frT "${forgejoCustom}/" "${config.services.forgejo.stateDir}/custom/"
|
||||||
find "${config.services.gitea.stateDir}/custom/" -type d -exec chmod 0750 '{}' + -or -type f -exec chmod 0640 '{}' +
|
find "${config.services.forgejo.stateDir}/custom/" -type d -exec chmod 0750 '{}' + -or -type f -exec chmod 0640 '{}' +
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|