full deployment via nix
This commit is contained in:
parent
8ebf4a26f4
commit
5ca7dadd02
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
result
|
||||
config.nix
|
||||
|
9
config.nix.tpl
Normal file
9
config.nix.tpl
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
powSecret = "";
|
||||
mlSMTPAddr = "";
|
||||
mlSMTPAuth = "";
|
||||
dataDir = ".";
|
||||
publicURL = "http://localhost:4000";
|
||||
listenProto = "tcp";
|
||||
listenAddr = ":4000";
|
||||
}
|
43
default.nix
Normal file
43
default.nix
Normal file
@ -0,0 +1,43 @@
|
||||
let
|
||||
utils = (import ./nix) {};
|
||||
pkgs = utils.pkgs;
|
||||
system = utils.system;
|
||||
in
|
||||
rec {
|
||||
srv = (import ./srv).build;
|
||||
static = (import ./static).build;
|
||||
config = (import ./config.nix);
|
||||
|
||||
service = pkgs.writeText "mediocregopher-mediocre-blog" ''
|
||||
[Unit]
|
||||
Description=mediocregopher mediocre blog
|
||||
Requires=network.target
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Restart=always
|
||||
RestartSec=1s
|
||||
User=mediocregopher
|
||||
ExecStart=${srv}/bin/mediocre-blog \
|
||||
-pow-secret "${config.powSecret}" \
|
||||
-ml-smtp-addr "${config.mlSMTPAddr}" \
|
||||
-ml-smtp-auth "${config.mlSMTPAuth}" \
|
||||
-data-dir "${config.dataDir}" \
|
||||
-public-url "${config.publicURL}" \
|
||||
-static-dir "${static}" \
|
||||
-listen-proto "${config.listenProto}" \
|
||||
-listen-addr "${config.listenAddr}"
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
'';
|
||||
|
||||
install = pkgs.writeScript "mediocregopher-mediocre-blog" ''
|
||||
set -e -x
|
||||
|
||||
sudo cp ${service} /etc/systemd/system/mediocregopher-mediocre-blog.service
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable mediocregopher-mediocre-blog.service
|
||||
sudo systemctl restart mediocregopher-mediocre-blog.service
|
||||
'';
|
||||
}
|
@ -143,8 +143,8 @@ func main() {
|
||||
Store: mlStore,
|
||||
Mailer: mailer,
|
||||
Clock: clock,
|
||||
FinalizeSubURL: path.Join(publicURL.String(), "/mailinglist/finalize.html"),
|
||||
UnsubURL: path.Join(publicURL.String(), "/mailinglist/unsubscribe.html"),
|
||||
FinalizeSubURL: publicURL.String() + "/mailinglist/finalize.html",
|
||||
UnsubURL: publicURL.String() + "/mailinglist/unsubscribe.html",
|
||||
})
|
||||
|
||||
mux := http.NewServeMux()
|
||||
@ -183,6 +183,12 @@ func main() {
|
||||
loggerFatalErr(ctx, logger, "creating listen socket", err)
|
||||
}
|
||||
|
||||
if *listenProto == "unix" {
|
||||
if err := os.Chmod(*listenAddr, 0777); err != nil {
|
||||
loggerFatalErr(ctx, logger, "chmod-ing unix socket", err)
|
||||
}
|
||||
}
|
||||
|
||||
srv := &http.Server{Handler: mux}
|
||||
go func() {
|
||||
if err := srv.Serve(l); err != nil && !errors.Is(err, http.ErrServerClosed) {
|
||||
|
@ -9,7 +9,7 @@ in
|
||||
pname = "mediocre-blog-srv";
|
||||
version = "dev";
|
||||
src = ./.;
|
||||
vendorSha256 = "0xr5gks5mrh34s5npncw71wncrzqrhnm3vjfwdakd7fzd6iw049z";
|
||||
vendorSha256 = "08wv94yv2wmlxzmanw551gixc8v8nl6zq2m721ig9nl3r540x46f";
|
||||
};
|
||||
|
||||
shell = pkgs.stdenv.mkDerivation {
|
||||
|
@ -114,7 +114,7 @@ func TestManager(t *testing.T) {
|
||||
c := mgr.NewChallenge()
|
||||
solution := Solve(c)
|
||||
clock.Add(2 * time.Second)
|
||||
assert.ErrorIs(t, mgr.CheckSolution(c.Seed, solution), ErrExpiredSolution)
|
||||
assert.ErrorIs(t, mgr.CheckSolution(c.Seed, solution), ErrExpiredSeed)
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user