{ inputs.pkgsSrc.url = "nixpkgs/nixos-21.05"; inputs.utils.url = "github:numtide/flake-utils"; outputs = { self, pkgsSrc, utils }: utils.lib.eachSystem utils.lib.allSystems (system: let pkgs = import pkgsSrc { inherit system; }; in { defaultPackage = pkgs.buildGoModule { pname = "mediocre-blog"; version = "dev"; src = ./src; vendorSha256 = "sha256:1vazrrg8rs9n8x40c9r53h9qnyxw59xkp0aq7jl15fliigk6q0cr"; subPackages = [ "cmd/mediocre-blog" ]; # disable tests checkPhase = ''''; }; devShell = pkgs.mkShell { buildInputs = [ pkgs.go pkgs.sqlite ]; shellHook = '' export MEDIOCRE_BLOG_DATA_DIR="/tmp/mediocre-blog/data" # mailing list export MEDIOCRE_BLOG_ML_SMTP_ADDR="" export MEDIOCRE_BLOG_ML_SMTP_AUTH="" export MEDIOCRE_BLOG_ML_PUBLIC_URL="http://localhost:4000" # pow export MEDIOCRE_BLOG_POW_SECRET="ssshhh" # http export MEDIOCRE_BLOG_HTTP_PUBLIC_URL="$MEDIOCRE_BLOG_ML_PUBLIC_URL" export MEDIOCRE_BLOG_HTTP_LISTEN_PROTO="tcp" export MEDIOCRE_BLOG_HTTP_LISTEN_ADDR=":4000" # http auth # (password is "bar". This should definitely be changed for prod.) export MEDIOCRE_BLOG_HTTP_AUTH_USERS='{"foo":"$2a$13$0JdWlUfHc.3XimEMpEu1cuu6RodhUvzD9l7iiAqa4YkM3mcFV5Pxi"}' export MEDIOCRE_BLOG_HTTP_AUTH_RATELIMIT="1s" cd src echo 'Loading test data...' (cd cmd/load-test-data && go run main.go) echo -e "\n\nTest data has been loaded into $MEDIOCRE_BLOG_DATA_DIR\n" echo -e "You can do 'go run ./cmd/mediocre-blog/main.go' to start a dev instance on http://localhost:4000\n\n" ''; }; }); }