diff options
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..3107f8c --- /dev/null +++ b/flake.nix @@ -0,0 +1,63 @@ +{ + 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" + ''; + }; + + }); +} |