{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":605657219,"defaultBranch":"main","name":"localias","ownerLogin":"peterldowns","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-02-23T16:14:26.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/824173?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1715543732.0","currentOid":""},"activityList":{"items":[{"before":"46b0a470b1b078f256197b4fb09ac27ca66d37c7","after":"2eef7272f46f385fffdaa6a6d42dcea0015eeb20","ref":"refs/heads/main","pushedAt":"2024-05-12T19:54:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"bump version in README","shortMessageHtmlLink":"bump version in README"}},{"before":"52f6869b08cf1aaeba04b5d2b0d571fd9ae86cc6","after":null,"ref":"refs/heads/mdns","pushedAt":"2024-05-12T18:15:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"}},{"before":"762f4ad28b29185160925d0cecc188a26eac0004","after":null,"ref":"refs/heads/v2","pushedAt":"2024-05-12T18:15:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"}},{"before":"180a26dfad84c4f98db2eab2f292404bd01686ed","after":null,"ref":"refs/heads/bugfix/autorenew-certs","pushedAt":"2024-05-12T18:15:53.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"}},{"before":"e0e96ac7b30a4c1cc9703f381d5f59ef7cb53db3","after":null,"ref":"refs/heads/nix-update","pushedAt":"2024-05-12T18:15:52.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"}},{"before":"fe5d709f0f88d6f5e1050bf65e58e78970ff3eb3","after":"46b0a470b1b078f256197b4fb09ac27ca66d37c7","ref":"refs/heads/main","pushedAt":"2024-05-12T18:05:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"fix: install root certs correctly by changing how daemonization works (#31)\n\n## Bugfix\r\n\r\nFix #30 by changing how daemonization works. \r\n\r\n- Previously: `start`/`reload` would apply the latest config in the\r\nforeground process, then fork(), then start Caddy.\r\n- Now: `start`/`reload` apply the latest config, starts Caddy in the\r\nforeground process, then fork()s.\r\n- By starting Caddy in the foreground process, any activities requiring\r\nsudo/root will happen while the program is still interactive.\r\n- This fixes the problem (adding the root cert to the system store\r\nrequires sudo/root privileges, but because Caddy was running in a\r\nbackground process, it couldn't request that permission.)\r\n- The foreground process exits cleanly and the background process starts\r\nCaddy again, this time without any need for sudo/root privileges because\r\nany of the work it needed to do was already done in the foreground\r\nprocess.\r\n\r\n## Friendlier CLI\r\n\r\nThis change encouraged me to make the following improvements to the CLI\r\ncommands:\r\n\r\n- `stop` just kills the daemon, if it's running. If the daemon wasn't\r\nrunning, `stop` will now exit cleanly. Previously, it would throw an\r\nerror, but that's user-hostile because the goal of running `stop` is to\r\nensure no running daemon — if that goal is accomplished by stopping a\r\nrunning daemon, or confirming no daemon was running, doesn't really\r\nmatter.\r\n- `start` will start a new daemon. If one was already running, it will\r\nbe killed and replaced by a new one. The user's goal is to ensure a\r\ndaemon is running, with the latest config, and this is achieved\r\nregardless of whether or not there was an existing daemon.\r\n- `reload` becomes an alias for `start`, because they have the exact\r\nsame behavior — ensure that a daemon is running with the latest\r\nconfiguiration.\r\n\r\n## Get rid of `caddymodules`\r\n\r\nA while ago, localias was built using `gomod2nix`, and there was an\r\nincompatibility between that helper and the opentelemetry modules\r\nincluded in Caddy. To work around this, I created a `caddymodules`\r\npackage that imported all of the Caddy modules _except_ opentelemetry,\r\nwhich was fine because this project doesn't use the opentelemetry\r\nmodules in any way.\r\n\r\nBecause localias no longer uses `gomod2nix`, this PR gets rid of the\r\n`caddymodules` hack entirely. This then allowed me to upgrade the\r\nversion of Caddy that is being installed, and it will make it easier to\r\nstay up to date as Caddy receives further improvements.\r\n\r\n## SSL renewal server\r\n\r\nWith an upgraded Caddy came a problem — for SSL issuance, Caddy now\r\nrequires you to implement an \"automation policy\" server that confirms\r\nthat it can issue a new certificate for a given domain. This is\r\nprimarily aimed at issuing certificates for real life domains accessible\r\nto the public, not for internal development aliases, but the restriction\r\nstill stands. To do this, I used Caddy itself to respond to these\r\nrequests.\r\n\r\nFor more information, read:\r\n- https://caddyserver.com/docs/automatic-https#on-demand-tls\r\n-\r\nhttps://caddy.community/t/serving-tens-of-thousands-of-domains-over-https-with-caddy/11179\r\n- https://github.com/caddyserver/caddy/pull/6055\r\n\r\nIn the future, I could implement this by writing a custom policy module\r\ninstead of using the HTTP ask, but this works for now.\r\n\r\n## Dependencies cleanup\r\n\r\n- General updates of all imported golang packages.\r\n- Update the `flake.nix` and `flake.lock` files, switch to\r\n`buildGoModule` instead of `buildGo120Module` to make it easier to use\r\nthis flake with an override `nixpkgs` upstream.","shortMessageHtmlLink":"fix: install root certs correctly by changing how daemonization works ("}},{"before":"6769abf839b1f5d8734faba86ebb7aa1f116e9d5","after":"e0e96ac7b30a4c1cc9703f381d5f59ef7cb53db3","ref":"refs/heads/nix-update","pushedAt":"2024-05-12T00:32:45.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"Update release script to use go1.22","shortMessageHtmlLink":"Update release script to use go1.22"}},{"before":"04c0c8749215c375f83de0b45cc727e0c1ec68d2","after":"6769abf839b1f5d8734faba86ebb7aa1f116e9d5","ref":"refs/heads/nix-update","pushedAt":"2024-05-12T00:31:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"Combine reload/start commands.","shortMessageHtmlLink":"Combine reload/start commands."}},{"before":"46626bd8d4110845d33f45fa8c3e65681414b014","after":"04c0c8749215c375f83de0b45cc727e0c1ec68d2","ref":"refs/heads/nix-update","pushedAt":"2024-05-11T22:44:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"Fix daemon behavior on WSL2","shortMessageHtmlLink":"Fix daemon behavior on WSL2"}},{"before":"41597e26b284335a0711be0398ad96932625fa3c","after":"46626bd8d4110845d33f45fa8c3e65681414b014","ref":"refs/heads/nix-update","pushedAt":"2024-05-07T03:14:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"Speed up nix workflow by only testing flakes.","shortMessageHtmlLink":"Speed up nix workflow by only testing flakes."}},{"before":"bbc08eaf77b4a2dd9ecd74f7262a0591633b374a","after":"41597e26b284335a0711be0398ad96932625fa3c","ref":"refs/heads/nix-update","pushedAt":"2024-05-07T03:12:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"Attempt to fix weird race in config_test","shortMessageHtmlLink":"Attempt to fix weird race in config_test"}},{"before":"007558b24a1ab522d094dc974040a7556c86b841","after":"bbc08eaf77b4a2dd9ecd74f7262a0591633b374a","ref":"refs/heads/nix-update","pushedAt":"2024-05-07T03:05:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"Fix golangci-lint","shortMessageHtmlLink":"Fix golangci-lint"}},{"before":"85d79fd94003e25a127bb1f180007a7c22ff9d0c","after":"007558b24a1ab522d094dc974040a7556c86b841","ref":"refs/heads/nix-update","pushedAt":"2024-05-07T02:02:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"Get things mostly working.\n\nStill a problem if you `localias start` and then `localias run`,\nseeing a weird EOF error in `cntxt.Search()` probably from\nthe ReadPidFile","shortMessageHtmlLink":"Get things mostly working."}},{"before":"996c3bf9895f8efe5bac33ab6b05fbeff763a908","after":"85d79fd94003e25a127bb1f180007a7c22ff9d0c","ref":"refs/heads/nix-update","pushedAt":"2024-05-07T01:22:35.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"Bump vendorHash","shortMessageHtmlLink":"Bump vendorHash"}},{"before":null,"after":"996c3bf9895f8efe5bac33ab6b05fbeff763a908","ref":"refs/heads/nix-update","pushedAt":"2024-05-06T04:06:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"Do daemonization differently","shortMessageHtmlLink":"Do daemonization differently"}},{"before":"c3c6d975eed39ea7c9b8ccfaf1f5ab9bd26e3aae","after":"fe5d709f0f88d6f5e1050bf65e58e78970ff3eb3","ref":"refs/heads/main","pushedAt":"2024-04-04T18:24:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"ci: remove brew bottling scripts\n\nI'm going to follow the goreleaser pattern of skipping bottles/casks\nand just doing binary installs. This means I don't need to repackage\neach binary into a separate artifact.\n\nSee\nhttps://github.com/peterldowns/homebrew-tap/commit/e4756b9da030933f5e98812ddc2dcb04c1cf0f38\nfor an example of what the brew Formula looks like --- it just consumes\nthe built binaries. Simple.","shortMessageHtmlLink":"ci: remove brew bottling scripts"}},{"before":"56d660e236437965e354183f50bdb9118d2ef3a8","after":"c3c6d975eed39ea7c9b8ccfaf1f5ab9bd26e3aae","ref":"refs/heads/main","pushedAt":"2024-04-03T20:13:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"fix(certs): automatically refresh tls certificates with on_demand_tls (#28)\n\nThis PR is intended to fix issue #27. The bug was that while \"on demand\"\r\nTLS issuing (including automatic certificate renewal) was *enabled* for\r\nthe local CA, it wasn't actually turned on. The fix is to turn on the\r\nautomatic certificate renewal.\r\n\r\nOnce that was turned on, Caddy started showing a warning regarding a\r\nmissing `on_demand_tls` global configuration block, so I updated the\r\nconfig to include that, too.\r\n\r\nThe warning looks like:\r\n\r\n```bash\r\n2024/04/03 19:25:08.859\tWARN\ttls\tYOUR SERVER MAY BE VULNERABLE TO ABUSE: on-demand TLS is enabled, but no protections are in place\t{\"docs\": \"https://caddyserver.com/docs/automatic-https#on-demand-tls\"}\r\n```\r\n\r\nI tested that this PR solves the problem by:\r\n\r\n* Updating each entry to have `tls.issuer.lifetime = 10s`, so that the\r\ncerts generated for each site would expire after 10 seconds. (The\r\ndefault period is `12h`.)\r\n* Confirming that once the certificate expires, `localias` did not\r\nautomatically renew the certificate.\r\n* Adding the `tls.on_demand` configuration statement to turn on\r\nautomatic certificate renewal.\r\n* Confirming that with this new configuration option, `localias` would\r\nautomatically renew the certificate when the next request was made to\r\nthe website.\r\n\r\nFor Caddy docs that helped me figure this out, see:\r\n* https://caddyserver.com/docs/automatic-https#on-demand-tls\r\n* https://caddyserver.com/docs/caddyfile/directives/tls#internal\r\n\r\n
\r\n Click here to see example logs proving automatic\r\ncertificate renewal \r\n\r\n```bash\r\n2024/04/03 19:25:08.861\tINFO\ttls\tfinished cleaning storage units\r\n2024/04/03 19:26:05.217\tINFO\ttls.on_demand\tattempting certificate renewal\t{\"server_name\": \"expiry.test\", \"subjects\": [\"expiry.test\"], \"expiration\": \"2024/04/03 19:24:58.000\", \"remaining\": -67.217564, \"revoked\": false}\r\n2024/04/03 19:26:05.223\tINFO\ttls.renew\tacquiring lock\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:05.246\tINFO\ttls.renew\tlock acquired\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:05.246\tINFO\ttls.renew\trenewing certificate\t{\"identifier\": \"expiry.test\", \"remaining\": -67.24655}\r\n2024/04/03 19:26:05.249\tINFO\ttls.renew\tcertificate renewed successfully\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:05.249\tINFO\ttls.renew\treleasing lock\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:05.250\tINFO\ttls.cache\treplaced certificate in cache\t{\"subjects\": [\"expiry.test\"], \"new_expiration\": \"2024/04/03 19:26:16.000\"}\r\n2024/04/03 19:26:13.149\tINFO\ttls.on_demand\tattempting certificate renewal\t{\"server_name\": \"expiry.test\", \"subjects\": [\"expiry.test\"], \"expiration\": \"2024/04/03 19:26:16.000\", \"remaining\": 2.850843, \"revoked\": false}\r\n2024/04/03 19:26:13.154\tINFO\ttls.renew\tacquiring lock\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:13.179\tINFO\ttls.renew\tlock acquired\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:13.180\tINFO\ttls.renew\trenewing certificate\t{\"identifier\": \"expiry.test\", \"remaining\": 2.819957}\r\n2024/04/03 19:26:13.181\tINFO\ttls.renew\tcertificate renewed successfully\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:13.181\tINFO\ttls.renew\treleasing lock\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:13.181\tINFO\ttls.cache\treplaced certificate in cache\t{\"subjects\": [\"expiry.test\"], \"new_expiration\": \"2024/04/03 19:26:24.000\"}\r\n2024/04/03 19:26:45.121\tINFO\ttls.on_demand\tattempting certificate renewal\t{\"server_name\": \"expiry.test\", \"subjects\": [\"expiry.test\"], \"expiration\": \"2024/04/03 19:26:24.000\", \"remaining\": -21.12137, \"revoked\": false}\r\n2024/04/03 19:26:45.122\tINFO\ttls.renew\tacquiring lock\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:45.146\tINFO\ttls.renew\tlock acquired\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:45.147\tINFO\ttls.renew\trenewing certificate\t{\"identifier\": \"expiry.test\", \"remaining\": -21.147127}\r\n2024/04/03 19:26:45.154\tINFO\ttls.renew\tcertificate renewed successfully\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:45.154\tINFO\ttls.renew\treleasing lock\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:45.155\tINFO\ttls.cache\treplaced certificate in cache\t{\"subjects\": [\"expiry.test\"], \"new_expiration\": \"2024/04/03 19:26:56.000\"}\r\n2024/04/03 19:26:55.618\tINFO\ttls.on_demand\tattempting certificate renewal\t{\"server_name\": \"expiry.test\", \"subjects\": [\"expiry.test\"], \"expiration\": \"2024/04/03 19:26:56.000\", \"remaining\": 0.381874, \"revoked\": false}\r\n2024/04/03 19:26:55.619\tINFO\ttls.renew\tacquiring lock\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:55.641\tINFO\ttls.renew\tlock acquired\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:55.641\tINFO\ttls.renew\trenewing certificate\t{\"identifier\": \"expiry.test\", \"remaining\": 0.358275}\r\n2024/04/03 19:26:55.650\tINFO\ttls.renew\tcertificate renewed successfully\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:55.650\tINFO\ttls.renew\treleasing lock\t{\"identifier\": \"expiry.test\"}\r\n2024/04/03 19:26:55.653\tINFO\ttls.cache\treplaced certificate in cache\t{\"subjects\": [\"expiry.test\"], \"new_expiration\": \"2024/04/03 19:27:06.000\"}\r\n```\r\n
","shortMessageHtmlLink":"fix(certs): automatically refresh tls certificates with on_demand_tls ("}},{"before":"748bc0f5ad83cd9177030cc1cff030f9ba7052a1","after":"180a26dfad84c4f98db2eab2f292404bd01686ed","ref":"refs/heads/bugfix/autorenew-certs","pushedAt":"2024-04-03T20:09:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"version: 2.0.2 -> 2.0.3","shortMessageHtmlLink":"version: 2.0.2 -> 2.0.3"}},{"before":null,"after":"748bc0f5ad83cd9177030cc1cff030f9ba7052a1","ref":"refs/heads/bugfix/autorenew-certs","pushedAt":"2024-04-03T19:52:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"fix(certs): automatically refresh tls certificates with on_demand_tls","shortMessageHtmlLink":"fix(certs): automatically refresh tls certificates with on_demand_tls"}},{"before":"957c2c6230745b956741191adfd44576d75078aa","after":"56d660e236437965e354183f50bdb9118d2ef3a8","ref":"refs/heads/main","pushedAt":"2024-03-20T21:24:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"fix(mDNS): fix mDNS serving from computers with hostnames ending in .local\n\nFixes #20 and #21, both of which were caused by the mDNS server not\nworking when the host running localias has a hostname already ending in\n.local. I tested this with hostnames `pld-mbp-22` and\n`pld-mbp-22.local`, and in both cases mDNS serving worked correctly and\nserved responses to another computer on the local network.","shortMessageHtmlLink":"fix(mDNS): fix mDNS serving from computers with hostnames ending in .…"}},{"before":"e3fade1a3997fa5fe71d2db3d9801d1388c0d0f4","after":"957c2c6230745b956741191adfd44576d75078aa","ref":"refs/heads/main","pushedAt":"2024-03-20T21:22:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"fix(mDNS): fix mDNS serving from computers with hostnames ending in .local","shortMessageHtmlLink":"fix(mDNS): fix mDNS serving from computers with hostnames ending in .…"}},{"before":"957c2c6230745b956741191adfd44576d75078aa","after":null,"ref":"refs/heads/bugfix/mdns-local-hostname","pushedAt":"2024-03-20T21:22:22.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"}},{"before":"d9ec4e84ce9f5dd5a530c79be7a84184a58de5fb","after":"e3fade1a3997fa5fe71d2db3d9801d1388c0d0f4","ref":"refs/heads/main","pushedAt":"2024-01-11T16:16:14.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"fix(docs) remove references to outdated daemon subcommand","shortMessageHtmlLink":"fix(docs) remove references to outdated daemon subcommand"}},{"before":"c358250080edbd5111b6775133f29973d465bb77","after":"d9ec4e84ce9f5dd5a530c79be7a84184a58de5fb","ref":"refs/heads/main","pushedAt":"2023-12-29T20:41:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"docs: update demo image","shortMessageHtmlLink":"docs: update demo image"}},{"before":"b5dcd755a2a2a8757e909221bbca20f9a47f7263","after":"c358250080edbd5111b6775133f29973d465bb77","ref":"refs/heads/main","pushedAt":"2023-12-29T20:06:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"fix(cli): fix broken mDNS resolving on macOS with go1.19\n\nWhile testing, I noticed that localias installed via homebrew\nwas unable to serve .local aliases over mDNS:\n\n```\n❯ /opt/homebrew/bin/localias run\n[ ... snip ... ]\nerror: failed to find local IP: lookup pld-mbp-22.local on 8.8.8.8:53: no such host\n```\n\nThe problem is that the release binaries were being built with go1.19,\nwhich does not use the macOS system DNS resolution algorithm. Locally, I\nhad been developing with go1.20, which does. See https://danp.net/posts/macos-dns-change-in-go-1-20/\nfor more information on the differences between go1.19 and go1.20.\n\nTo fix this issue, this commit:\n\n- Updates the release binary workflow to use go1.20\n- Updates the localias server code to warn but continue if the mDNS\n server cannot be started, so that mDNS errors do not prevent you\n from successfully using localias.\n- Adds some log lines showing which aliases are being served over mDNS\n when they are successfully being served. This should make debugging\n easier in the future.","shortMessageHtmlLink":"fix(cli): fix broken mDNS resolving on macOS with go1.19"}},{"before":"ce353ffb7577d954bd8b18ec8fe2763b7f1a9bad","after":"b5dcd755a2a2a8757e909221bbca20f9a47f7263","ref":"refs/heads/main","pushedAt":"2023-12-29T20:02:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"fix(cli): fix broken mDNS resolving on macOS with go1.19\n\nWhile testing, I noticed that localias installed via homebrew\nwas unable to serve .local aliases over mDNS:\n\n```\n❯ /opt/homebrew/bin/localias run\n[ ... snip ... ]\nerror: failed to find local IP: lookup pld-mbp-22.local on 8.8.8.8:53: no such host\n```\n\nThe problem is that the release binaries were being built with go1.19,\nwhich does not use the macOS system DNS resolution algorithm. Locally, I\nhad been developing with go1.20, which does. See https://danp.net/posts/macos-dns-change-in-go-1-20/\nfor more information on the differences between go1.19 and go1.20.\n\nTo fix this issue, this commit:\n\n- Updates the release binary workflow to use go1.20\n- Updates the localias server code to warn but continue if the mDNS\n server cannot be started, so that mDNS errors do not prevent you\n from successfully using localias.\n- Adds some log lines showing which aliases are being served over mDNS\n when they are successfully being served. This should make debugging\n easier in the future.","shortMessageHtmlLink":"fix(cli): fix broken mDNS resolving on macOS with go1.19"}},{"before":"6fd55355bfa99fc77db57732b5d95a5029e7522d","after":"ce353ffb7577d954bd8b18ec8fe2763b7f1a9bad","ref":"refs/heads/main","pushedAt":"2023-12-29T19:29:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"fix(cli) better error messages on invalid commands","shortMessageHtmlLink":"fix(cli) better error messages on invalid commands"}},{"before":"9fedbac5611b8de7e9d83850dd755b36646d9db6","after":"6fd55355bfa99fc77db57732b5d95a5029e7522d","ref":"refs/heads/main","pushedAt":"2023-12-29T19:12:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"release version 2.0.0 (#19)\n\n* release version 2.0.0\r\n\r\n- Implement mDNS for .local domains.\r\n- removed `daemon` subcommand\r\n- code cleanups\r\n - remove macOS app\r\n - better naming and organization\r\n - switch to `buildGoModule`, stop using `gomod2nix`\r\n - pin go1.20 in nix build because github.com/quic-go/quic-go cannot be\r\n built with go1.21\r\n- Resolve some user-reported issues\r\n - Update secure/insecure domain docs (#17)\r\n - Explain \"localias is already running\" error message (#18)","shortMessageHtmlLink":"release version 2.0.0 (#19)"}},{"before":"03af5f832c3c721aad91687c9a1aff38d378a68a","after":"762f4ad28b29185160925d0cecc188a26eac0004","ref":"refs/heads/v2","pushedAt":"2023-12-29T19:05:51.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"Use magic-nix-cache","shortMessageHtmlLink":"Use magic-nix-cache"}},{"before":"78d570391ccb61410e4f86f495be56a67c5da8dd","after":"03af5f832c3c721aad91687c9a1aff38d378a68a","ref":"refs/heads/v2","pushedAt":"2023-12-29T18:59:13.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"peterldowns","name":"Peter Downs","path":"/peterldowns","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/824173?s=80&v=4"},"commit":{"message":"Fix nix lint.","shortMessageHtmlLink":"Fix nix lint."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAER9FZCQA","startCursor":null,"endCursor":null}},"title":"Activity · peterldowns/localias"}