70 lines
2.0 KiB
Nix
70 lines
2.0 KiB
Nix
{
|
|
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-02LW4zscNKoIfzcBhOQwObh/04oRl/6hRsFMfCycWzA=";
|
|
|
|
subPackages = [ "cmd/mediocre-blog" ];
|
|
|
|
# disable tests
|
|
checkPhase = '''';
|
|
};
|
|
|
|
devShell = pkgs.mkShell {
|
|
buildInputs = [ pkgs.go pkgs.sqlite pkgs.amfora ];
|
|
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"
|
|
|
|
# gmi
|
|
export MEDIOCRE_BLOG_GEMINI_PUBLIC_URL="gemini://localhost:2096"
|
|
export MEDIOCRE_BLOG_GEMINI_LISTEN_ADDR=":2065"
|
|
export MEDIOCRE_BLOG_GEMINI_CERTIFICATES_PATH="$MEDIOCRE_BLOG_DATA_DIR/gmi/certs"
|
|
|
|
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"
|
|
echo -e "You can then do 'amfora gemini://localhost:2065' to test the gemini server\n"
|
|
'';
|
|
};
|
|
|
|
});
|
|
}
|