at master 1.4 kB view raw
1{ 2 name = "pixelfed-standard"; 3 meta.maintainers = [ ]; 4 5 nodes = { 6 server = 7 { pkgs, ... }: 8 { 9 services.pixelfed = { 10 enable = true; 11 domain = "pixelfed.local"; 12 # Configure NGINX. 13 nginx = { }; 14 secretFile = ( 15 pkgs.writeText "secrets.env" '' 16 # Snakeoil secret, can be any random 32-chars secret via CSPRNG. 17 APP_KEY=adKK9EcY8Hcj3PLU7rzG9rJ6KKTOtYfA 18 '' 19 ); 20 settings."FORCE_HTTPS_URLS" = false; 21 }; 22 }; 23 }; 24 25 testScript = '' 26 # Wait for Pixelfed PHP pool 27 server.wait_for_unit("phpfpm-pixelfed.service") 28 # Wait for NGINX 29 server.wait_for_unit("nginx.service") 30 # Wait for HTTP port 31 server.wait_for_open_port(80) 32 # Access the homepage. 33 server.succeed("curl -H 'Host: pixelfed.local' http://localhost") 34 # Create an account 35 server.succeed("pixelfed-manage user:create --name=test --username=test --email=test@test.com --password=test") 36 # Create a OAuth token. 37 # TODO: figure out how to use it to send a image/toot 38 # server.succeed("pixelfed-manage passport:client --personal") 39 # server.succeed("curl -H 'Host: pixefed.local' -H 'Accept: application/json' -H 'Authorization: Bearer secret' -F'status'='test' http://localhost/api/v1/statuses") 40 ''; 41}