mastus: mail & git
This commit is contained in:
		
							parent
							
								
									ea455ed5e6
								
							
						
					
					
						commit
						dac11a30b0
					
				@ -5,6 +5,9 @@
 | 
				
			|||||||
    [
 | 
					    [
 | 
				
			||||||
      /etc/nixos/hardware-configuration.nix
 | 
					      /etc/nixos/hardware-configuration.nix
 | 
				
			||||||
      ../basic-tools.nix
 | 
					      ../basic-tools.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      ./mail.nix
 | 
				
			||||||
 | 
					      ./gogs.nix
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  boot.loader.grub.enable = true;
 | 
					  boot.loader.grub.enable = true;
 | 
				
			||||||
@ -12,6 +15,7 @@
 | 
				
			|||||||
  boot.loader.grub.device = "/dev/vda";
 | 
					  boot.loader.grub.device = "/dev/vda";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  networking.hostName = "mastus"; # Define your hostname.
 | 
					  networking.hostName = "mastus"; # Define your hostname.
 | 
				
			||||||
 | 
					  networking.enableIPv6 = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Select internationalisation properties.
 | 
					  # Select internationalisation properties.
 | 
				
			||||||
  # i18n = {
 | 
					  # i18n = {
 | 
				
			||||||
@ -33,4 +37,6 @@
 | 
				
			|||||||
  # The NixOS release to be compatible with for stateful data such as databases.
 | 
					  # The NixOS release to be compatible with for stateful data such as databases.
 | 
				
			||||||
  system.stateVersion = "15.09";
 | 
					  system.stateVersion = "15.09";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.nginx.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										77
									
								
								mastus/gitblit.nix
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										77
									
								
								mastus/gitblit.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,77 @@
 | 
				
			|||||||
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  gitblitWar = pkgs.fetchurl {
 | 
				
			||||||
 | 
					    url = "http://dl.bintray.com/gitblit/releases/gitblit-1.6.2.war";
 | 
				
			||||||
 | 
					    sha256 = "01gqarpwqbx1ix5zycfxw4172q5l8hhxvb7f92y3lz8l6x42l7i9";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gitHome = "/srv/git.gebner.org";
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  containers.gitblit = {
 | 
				
			||||||
 | 
					    config = { config, pkgs, ... }: {
 | 
				
			||||||
 | 
					      users.extraUsers.git = { home = gitHome; extraGroups = [ "git" ]; };
 | 
				
			||||||
 | 
					      users.extraGroups.git = { };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      systemd.services.createGitDir = {
 | 
				
			||||||
 | 
					        wantedBy = [ "winstone-gitblit.service" ];
 | 
				
			||||||
 | 
					        serviceConfig.Type = "oneshot";
 | 
				
			||||||
 | 
					        script = ''
 | 
				
			||||||
 | 
					          mkdir -p ${gitHome}
 | 
				
			||||||
 | 
					          chown git:git -R ${gitHome}
 | 
				
			||||||
 | 
					        '';
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      services.winstone.gitblit = {
 | 
				
			||||||
 | 
					        user = "git";
 | 
				
			||||||
 | 
					        group = "git";
 | 
				
			||||||
 | 
					        warFile = "${gitblitWar}";
 | 
				
			||||||
 | 
					        extraJavaOptions = [ "-DGITBLIT_HOME=${gitHome}" ];
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    privateNetwork = true;
 | 
				
			||||||
 | 
					    hostAddress = "192.168.100.10";
 | 
				
			||||||
 | 
					    localAddress = "192.168.101.10";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.nginx.appendConfig = ''
 | 
				
			||||||
 | 
					  http {
 | 
				
			||||||
 | 
					    server {
 | 
				
			||||||
 | 
					      listen [::]:80;
 | 
				
			||||||
 | 
					      listen 80;
 | 
				
			||||||
 | 
					      server_name git.gebner.org;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      rewrite ^(.*) https://$host$1 permanent;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    server {
 | 
				
			||||||
 | 
					      listen [::]:443;
 | 
				
			||||||
 | 
					      listen 443;
 | 
				
			||||||
 | 
					      server_name git.gebner.org;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      ssl on;
 | 
				
			||||||
 | 
					      ssl_certificate_key /etc/sslcerts/mastus.key;
 | 
				
			||||||
 | 
					      ssl_certificate /etc/sslcerts/git.cert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      location / {
 | 
				
			||||||
 | 
					        proxy_set_header X-Real-IP $remote_addr;
 | 
				
			||||||
 | 
					        proxy_set_header X-Forwarded-Host $host;
 | 
				
			||||||
 | 
					        proxy_set_header X-Forwarded-Server $host;
 | 
				
			||||||
 | 
					        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 | 
				
			||||||
 | 
					        proxy_set_header Host $http_host;
 | 
				
			||||||
 | 
					        proxy_redirect off;
 | 
				
			||||||
 | 
					        proxy_buffering off;
 | 
				
			||||||
 | 
					        proxy_pass http://gitblit;
 | 
				
			||||||
 | 
					        client_max_body_size 30M;
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    upstream gitblit {
 | 
				
			||||||
 | 
					      server 192.168.100.10:8080;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										112
									
								
								mastus/gogs.nix
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										112
									
								
								mastus/gogs.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,112 @@
 | 
				
			|||||||
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  gitHome = "/srv/git.gebner.org";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gogs = pkgs.callPackage ../pkgs/gogs.nix { };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  gogsPort = 8001;
 | 
				
			||||||
 | 
					  gogsConfig = pkgs.writeText "gogs.ini" ''
 | 
				
			||||||
 | 
					APP_NAME = Gogs: Go Git Service
 | 
				
			||||||
 | 
					RUN_USER = git
 | 
				
			||||||
 | 
					RUN_MODE = prod
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[database]
 | 
				
			||||||
 | 
					DB_TYPE = sqlite3
 | 
				
			||||||
 | 
					HOST = 127.0.0.1:3306
 | 
				
			||||||
 | 
					NAME = gogs
 | 
				
			||||||
 | 
					USER = root
 | 
				
			||||||
 | 
					PASSWD = 
 | 
				
			||||||
 | 
					SSL_MODE = disable
 | 
				
			||||||
 | 
					PATH = ${gitHome}/data/gogs.db
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[repository]
 | 
				
			||||||
 | 
					ROOT = ${gitHome}/gogs-repositories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[server]
 | 
				
			||||||
 | 
					DOMAIN = git.gebner.org
 | 
				
			||||||
 | 
					HTTP_PORT = ${toString gogsPort}
 | 
				
			||||||
 | 
					ROOT_URL = https://git.gebner.org/
 | 
				
			||||||
 | 
					DISABLE_SSH = false
 | 
				
			||||||
 | 
					SSH_PORT = 22
 | 
				
			||||||
 | 
					OFFLINE_MODE = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[mailer]
 | 
				
			||||||
 | 
					ENABLED = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[service]
 | 
				
			||||||
 | 
					REGISTER_EMAIL_CONFIRM = false
 | 
				
			||||||
 | 
					ENABLE_NOTIFY_MAIL = false
 | 
				
			||||||
 | 
					DISABLE_REGISTRATION = true
 | 
				
			||||||
 | 
					REQUIRE_SIGNIN_VIEW = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[picture]
 | 
				
			||||||
 | 
					DISABLE_GRAVATAR = false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[session]
 | 
				
			||||||
 | 
					PROVIDER = file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[log]
 | 
				
			||||||
 | 
					ROOT_PATH = ${gitHome}/logs
 | 
				
			||||||
 | 
					MODE = file
 | 
				
			||||||
 | 
					LEVEL = Info
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[security]
 | 
				
			||||||
 | 
					INSTALL_LOCK = true
 | 
				
			||||||
 | 
					'';
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  users.extraUsers.git = { home = gitHome; extraGroups = [ "git" ]; };
 | 
				
			||||||
 | 
					  users.extraGroups.git = { };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  systemd.services.gogs = {
 | 
				
			||||||
 | 
					    path = with pkgs; [ git openssh ];
 | 
				
			||||||
 | 
					    wantedBy = [ "multi-user.target" ];
 | 
				
			||||||
 | 
					    serviceConfig = {
 | 
				
			||||||
 | 
					      Type = "simple";
 | 
				
			||||||
 | 
					      Restart = "always";
 | 
				
			||||||
 | 
					      User = "git";
 | 
				
			||||||
 | 
					      Group = "git";
 | 
				
			||||||
 | 
					      ExecStart = "${gogs}/gogs web -c ${gogsConfig}";
 | 
				
			||||||
 | 
					      WorkingDirectory = gitHome;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.nginx.appendConfig = ''
 | 
				
			||||||
 | 
					  http {
 | 
				
			||||||
 | 
					    server {
 | 
				
			||||||
 | 
					      listen [::]:80;
 | 
				
			||||||
 | 
					      listen 80;
 | 
				
			||||||
 | 
					      server_name git.gebner.org;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      rewrite ^(.*) https://$host$1 permanent;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    server {
 | 
				
			||||||
 | 
					      listen [::]:443;
 | 
				
			||||||
 | 
					      listen 443;
 | 
				
			||||||
 | 
					      server_name git.gebner.org;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      ssl on;
 | 
				
			||||||
 | 
					      ssl_certificate_key /etc/sslcerts/mastus.key;
 | 
				
			||||||
 | 
					      ssl_certificate /etc/sslcerts/git.cert;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      location / {
 | 
				
			||||||
 | 
					        proxy_set_header X-Real-IP $remote_addr;
 | 
				
			||||||
 | 
					        proxy_set_header X-Forwarded-Host $host;
 | 
				
			||||||
 | 
					        proxy_set_header X-Forwarded-Server $host;
 | 
				
			||||||
 | 
					        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 | 
				
			||||||
 | 
					        proxy_set_header Host $http_host;
 | 
				
			||||||
 | 
					        proxy_redirect off;
 | 
				
			||||||
 | 
					        proxy_buffering off;
 | 
				
			||||||
 | 
					        proxy_pass http://gogs;
 | 
				
			||||||
 | 
					        client_max_body_size 30M;
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    upstream gogs {
 | 
				
			||||||
 | 
					      server 127.0.0.1:${toString gogsPort};
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										56
									
								
								mastus/mail.nix
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										56
									
								
								mastus/mail.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  # services.opensmtpd = {
 | 
				
			||||||
 | 
					  #   enable = true;
 | 
				
			||||||
 | 
					  #   serverConfiguration = ''
 | 
				
			||||||
 | 
					  #     listen on 0.0.0.0
 | 
				
			||||||
 | 
					  #     filter sa spamassassin "-s accept"
 | 
				
			||||||
 | 
					  #     accept for any deliver to lmtp localhost:24
 | 
				
			||||||
 | 
					  #   '';
 | 
				
			||||||
 | 
					  #   procPackages = [ pkgs.opensmtpd-extras ];
 | 
				
			||||||
 | 
					  # };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.postfix = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    postmasterAlias = "gebner";
 | 
				
			||||||
 | 
					    rootAlias = "gebner";
 | 
				
			||||||
 | 
					    extraAliases = ''
 | 
				
			||||||
 | 
					      ge: gebner
 | 
				
			||||||
 | 
					      cutintro: gebner
 | 
				
			||||||
 | 
					    '';
 | 
				
			||||||
 | 
					    sslCACert = "/etc/sslcerts/startssl.cert";
 | 
				
			||||||
 | 
					    sslCert = "/etc/sslcerts/mail.cert";
 | 
				
			||||||
 | 
					    sslKey = "/etc/sslcerts/mail-postfix.key";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    extraConfig = ''
 | 
				
			||||||
 | 
					      mailbox_command = ${pkgs.procmail}/bin/procmail
 | 
				
			||||||
 | 
					    '';
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.dovecot2 = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    enablePop3 = false;
 | 
				
			||||||
 | 
					    mailLocation = "maildir:~/mail";
 | 
				
			||||||
 | 
					    sslCACert = "/etc/sslcerts/startssl.cert";
 | 
				
			||||||
 | 
					    sslServerCert = "/etc/sslcerts/mail.cert";
 | 
				
			||||||
 | 
					    sslServerKey = "/etc/sslcerts/mail-dovecot.key";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.spamassassin.enable = true;
 | 
				
			||||||
 | 
					  systemd.services.setupSpamassassin = {
 | 
				
			||||||
 | 
					    wantedBy = [ "spamd.service" ];
 | 
				
			||||||
 | 
					    after = [ "network.target" ];
 | 
				
			||||||
 | 
					    path = [ pkgs.spamassassin ];
 | 
				
			||||||
 | 
					    serviceConfig = {
 | 
				
			||||||
 | 
					      Type = "oneshot";
 | 
				
			||||||
 | 
					      RemainAfterExit = "yes";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    script = ''
 | 
				
			||||||
 | 
					      if [ ! -d /etc/spamassassin ]; then
 | 
				
			||||||
 | 
					        cp -rv ${pkgs.spamassassin}/share/spamassassin /etc/
 | 
				
			||||||
 | 
					        sa-update
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					    '';
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -5,9 +5,76 @@ let
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    users.extraUsers.gebner.password = "";
 | 
					    users.extraUsers.gebner.password = "";
 | 
				
			||||||
    users.users.root.password = "";
 | 
					    users.users.root.password = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    boot.enableContainers = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    systemd.services.createSSLKeys = {
 | 
				
			||||||
 | 
					      path = [ pkgs.easyrsa ];
 | 
				
			||||||
 | 
					      serviceConfig = {
 | 
				
			||||||
 | 
					        Type = "oneshot";
 | 
				
			||||||
 | 
					        RemainAfterExit = "yes";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      script = ''
 | 
				
			||||||
 | 
					rm -rf /etc/sslcerts
 | 
				
			||||||
 | 
					mkdir -p /etc/sslcerts/keys
 | 
				
			||||||
 | 
					cd /etc/sslcerts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# export PKCS11TOOL="pkcs11-tool"
 | 
				
			||||||
 | 
					export KEY_CONFIG=`${pkgs.easyrsa}/share/easy-rsa/whichopensslcnf ${pkgs.easyrsa}/share/easy-rsa/`
 | 
				
			||||||
 | 
					export KEY_DIR="$PWD/keys"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# PKCS11 fixes
 | 
				
			||||||
 | 
					# export PKCS11_MODULE_PATH="dummy"
 | 
				
			||||||
 | 
					# export PKCS11_PIN="dummy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export KEY_SIZE=1024
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export CA_EXPIRE=3650
 | 
				
			||||||
 | 
					export KEY_EXPIRE=3650
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export KEY_COUNTRY="AT"
 | 
				
			||||||
 | 
					export KEY_PROVINCE="AT"
 | 
				
			||||||
 | 
					export KEY_CITY="Vienna"
 | 
				
			||||||
 | 
					export KEY_ORG="Gabriel"
 | 
				
			||||||
 | 
					export KEY_EMAIL="testing@gebner.org"
 | 
				
			||||||
 | 
					export KEY_CN=testing.gebner.org
 | 
				
			||||||
 | 
					export KEY_NAME=testing.gebner.org
 | 
				
			||||||
 | 
					export KEY_OU=testing
 | 
				
			||||||
 | 
					# export PKCS11_MODULE_PATH=changeme
 | 
				
			||||||
 | 
					# export PKCS11_PIN=1234
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clean-all
 | 
				
			||||||
 | 
					build-dh
 | 
				
			||||||
 | 
					pkitool --initca
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					KEY_CN=git.gebner.org pkitool --server git
 | 
				
			||||||
 | 
					KEY_CN=mail.gebner.org pkitool --server mail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cp keys/ca.crt startssl.cert
 | 
				
			||||||
 | 
					cp keys/mail.crt mail.cert
 | 
				
			||||||
 | 
					cp keys/mail.key mail-postfix.key
 | 
				
			||||||
 | 
					cp keys/mail.key mail-dovecot.key
 | 
				
			||||||
 | 
					cp keys/git.crt git.cert
 | 
				
			||||||
 | 
					cp keys/git.key mastus.key
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      '';
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    systemd.services.setupVM = rec {
 | 
				
			||||||
 | 
					      wantedBy = [ "gogs.service" "dovecot2.service" ];
 | 
				
			||||||
 | 
					      before = wantedBy;
 | 
				
			||||||
 | 
					      wants = [ "createSSLKeys.service" ];
 | 
				
			||||||
 | 
					      serviceConfig = {
 | 
				
			||||||
 | 
					        Type = "oneshot";
 | 
				
			||||||
 | 
					        RemainAfterExit = "yes";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      script = ''
 | 
				
			||||||
 | 
					        mkdir -p /srv/git.gebner.org
 | 
				
			||||||
 | 
					        chown git:git -R /srv/git.gebner.org
 | 
				
			||||||
 | 
					      '';
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  nixos = import <nixpkgs/nixos> { configuration = configuration; };
 | 
					  nixos = import <nixpkgs/nixos> { configuration = configuration; };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
in
 | 
					in nixos.vm
 | 
				
			||||||
  nixos.vm
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										21
									
								
								pkgs/gogs.nix
									
									
									
									
									
										Normal file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										21
									
								
								pkgs/gogs.nix
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					{ nixpkgs ? import <nixpkgs> {} }: with nixpkgs;
 | 
				
			||||||
 | 
					stdenv.mkDerivation rec {
 | 
				
			||||||
 | 
					  name = "gogs-${version}";
 | 
				
			||||||
 | 
					  version = "0.6.9";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  src = fetchzip {
 | 
				
			||||||
 | 
					    url = "https://github.com/gogits/gogs/releases/download/v${version}/linux_amd64.zip";
 | 
				
			||||||
 | 
					    sha256 = "14aim9mww6ypz1y7n8x2vwbl98p6ga8l2z6b6ndmds5i6x3m3bxv";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  buildPhase = ''
 | 
				
			||||||
 | 
					    patchelf \
 | 
				
			||||||
 | 
					      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
 | 
				
			||||||
 | 
					      --set-rpath ${pam}/lib \
 | 
				
			||||||
 | 
					      gogs
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  installPhase = ''
 | 
				
			||||||
 | 
					    cp -ra ./ $out/
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user