

The shopping list alone is beautifully done. Glad that I could help 🙂
The shopping list alone is beautifully done. Glad that I could help 🙂
There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.
– Leon Bambrick
Regarding your requirement, you might want to take a look at KitchenOwl.
If you prefer freestyle notes/lists, Joplin can share and sync note collections as well.
Stalwart is 95% awesome. What holds me back is, that Mails are stored in a Database and not Maildir. Maildir is insanely trivial to backup incrementally and to restore individual mails if necessary. That currently holds me on dovecot.
It’s more comparable to Snikket. Both Snikket and Prose use Prosody as server with their own extensions.
You could look into prose. The interface of slack/discord/mattermost, built on XMPP, with E2EE.
Bitwardens local cache does not include attachments, though. If you rely on them, you have to rely on the server being available.
So “it’s weird then”. As I said. And basically as the person I answered to said.
Yeah but why not both? Extra support shouldn’t hurt.
… each time the server restart and randomly during login.
They already accept donations as a means of continuous support. So I guess this is now just another channel for people who prefer buying a license over using github donations.
Edit: oh I just realized they stopped donations with the restructuring. Ok, that’s weird then.
Mostly a nitpick, but for that little helper I would have stuck to the stdlib and not pulled in a dependency like echo
.
Otherwise: nice idea. I did something similar but since caddy runs directly on my host, I added permissions for the other services that need the cert and then pointed them directly at it.
If the AppleTV allowed side loading, it would be my dream device. The UX and the speed of Apple devices are just so damn pleasing. But the artificial limits they impose on what you can run on them is damn frustrating.
SiYuan is an opensource Notion alternative. (Not a clone.)
I am surprised that no one mentioned snikket yet, which is essentially a distribution of Prosody with sane defaults and a custom client.
I meant DNS within your container network. Exposed stuff should be mapped to host ports.
The bigger issue (IMO) is, that you now have a hard requirement on the startup order of your services. If another one happens to get the IP assigned automatically befor your service starts that requests it explicitly, you now have a conflict that you manually have to resolve.
DNS is the only sane solution here.
But everyone does keep their license. A company can not really take over in the sense that you lose your old code. They can stop developing in public but keep using your code, but so can you keep using the last public version and keep developing it. Or you can take your contribution and apply it elsewhere.
Half off-topic, sorry: if you have some spare time on the weekend, you might want to take a look at nftables. AFAIK iptables is also just using nftables under the hood, so you are basically using a deprecated technology.
nftables is so much nicer to work with. In the end I have my custom rules (which are much saner to define than in iptables) in
/etc/nftables.conf
, then I have a very simple systemd unit:[Unit] Description=Restore nftables firewall rules Before=network-pre.target [Service] Type=oneshot ExecStart=/usr/sbin/nft -f /etc/nftables.conf ExecStop=/usr/sbin/nft flush table inet filter RemainAfterExit=yes [Install] WantedBy=multi-user.target
and finally if I push updates via ansible I simply replace the file and run
nft -f /etc/nftables.conf
(via ansible; on-change event).Edit: oh and as an example how the actual rules file looks like:
#!/usr/bin/nft -f add table inet filter flush table inet filter table inet filter { chain input { type filter hook input priority 0; # allow established/related connections ct state {established, related} accept # early drop of invalid connections ct state invalid drop # allow from loopback iifname lo accept # allow icmp ip protocol icmp accept ip6 nexthdr icmpv6 accept # core services tcp dport {80, 443} accept comment "allow http(s)" udp dport 443 accept comment "allow http3" # everything else reject with icmpx type port-unreachable } }
and with that I have my ipv4+6 firewall that allows pings and http