Migrate from Wallabag to what?
Wallabag has been performing well for me both on desktop and mobile, but the archaic search functionality is pushing me to ditch it. There is a 9-year-old issue for allowing filtering by more than one tag (https://github.com/wallabag/wallabag/issues/1197)! I won't hold my breath.
A potential new system would have to:
* have a browser extension and support saving on mobile
* should work with subscription sites (e.g. FT)
* mark as read functionality
* robust search and filtering capability
* cover image for links (Linkding, shaarli, and LinkAce are too minimal for my taste)
* support imports from Wallabag as well as exports (Linkwarden and Omnivore fall short here)
* optional: have selective collaborative features between users like Linkwarden
What alternative covers all these requirements? Thanks
EDIT:
Shiori comes very close. It is only lacking the existing tags suggestion in the browser extension. Otherwise, it has multi-tag filters, previews, reader mode, imports from Wallabag, simple Docker stack, mobile app. Mark as "read" can be implemented with tags.
https://redd.it/1auszxd
@r_SelfHosted
The First Quantum-Resistant Mesh VPN (fully self hostable)
https://redd.it/1aur145
@r_SelfHosted
What kind software are you missing in your selfhosted setup ?
Hi, I'm a software developper and I'm getting really interested into the selhosted environment and would like to know what kind of software are you missing in your everyday life or what kind of software you'd like to see being improved.
I'm looking for new project ideas that I could start and I will keep posting if I'm getting any idea to retrieve feedback from the community.
Thank you for your time :)
EDIT: mb for the typo in the title ...
https://redd.it/1auikco
@r_SelfHosted
Backups without the cloud
Why is this so hard/complicated?
I have a small business with a Windows server with 10 PC's. I want to do an offsite backup (at my home) in case of a disaster. A simple NAS that backs up my systems that is off site.
Can someone please point me in the right direction?
https://redd.it/1auaywo
@r_SelfHosted
DNS blockers may have unexpected consequences
I'm sure this won't be news to many, but I wanted to post about an experience I had recently. For many years now I've been using DNS tools such a pi-hole, AdGuard Home and most recently Technitium in my home. I always knew that these could come at a price, for example blocking website X that I actually want to visit. But today I realized that some issues I was having with certain apps on my phone (that for years I was convinced were just sh*tty apps) were actually caused by my block lists.
The main example was an app for one of my credit cards. For years now the app has been working on and off (or so I thought) and the biometrics login rarely worked. Unfortunately for me, I must have missed the obvious pattern that things were only broken when on my home network. I was often getting a prompt from the app when logging in that the app was experiencing "technical issues", only to recently realize that one of the domains that was being blocked was necessary for the app to function. OK, I guess I can see that, I mean an app functions similarly to visiting a website, so that makes sense.
But what only clicked today, and I couldn't believe this could happen, was that the problem with biometric login was also being caused by a blocked domain. I noticed that when I opened the app outside of my home network, the biometric prompt would show up immediately, but it never did at home. So I looked through the logs and after some trial and error, narrowed it down to sdk.iad-05.braze.com (in the case of this specific app). Whitelisted that domain, and now everything biometrics work fine!
So today I learned, blocking domains not only impacts the web, but also apps and their related services. I'm glad I figured that out, so now I won't be as quick to write-off "terrible" apps when they don't work well.
tl;dr DNS blocklists can also impact things such as app logins and their related services (such as biometric login)
https://redd.it/1aubc9y
@r_SelfHosted
Traefik: no Docker v2 image available?
Since Traefik v3 is on the horizon and as far as I understand the migration will be manual, I want do remain at v2 at the moment. Having image: traefik:latest might be a bad idea now, so I want to switch to :v2 but there seems to be no image having all of the v2 branch. Currently, I changed it to v2.11 but I want to get v2 updates to eg. v2.12 automatically with Watchtower. Am I missing something?
https://redd.it/1au3iq7
@r_SelfHosted
Bitmagnet Allows People to Run Their Own Decentralized Torrent Indexer Locally
https://torrentfreak.com/bitmagnet-allows-people-to-run-their-own-decentralized-torrent-indexer-locally-240218/
https://redd.it/1au6ow4
@r_SelfHosted
Why is plex so hated?
Hi everyone,
I’m new to this. I’ve just been getting into Plex/Jellyfin/Emby. Using Emby right now, tried Jellyfin before and planning to try Plex as well.
My main question is, why is Plex so hated right now? I see people on subreddits giving their opinion but don’t fully understand it.
https://redd.it/1au3f3q
@r_SelfHosted
Self-hosted beginner security questions
I'm trying to set up a self hosted server for personal use, and I've been reading up on how I could make it secure.
I have very limited knowledge about network security.
I'm currently planning to use Cloudflare Tunnel (avoid port forwarding), maybe use Wireguard (encrypt data), use pfSense for firewall (supposed to allow only Cloudflare IPs).
And on the server side, I'm thinking to either use a Proxmox VM & have containers within, or use Proxmox LXCs.
1. Is this setup secure enough? I've seen mentions of using VLAN & subnet to abstract them further (layer 2), but I think I'd need a separate switch to configure this. Is this necessary?
2. Is it possible to make it more secure without the use of a switch? Or alternative options for this setup?
3. Is it better to use a Proxmox VM with containers (maybe multiple VMs for each module)? From my limited knowledge, access to my network devices could be limited by using a virtualized server. Or maybe it doesn't matter, and using LXC for each module is better.
Other stuff I've come across, but haven't researched enough:
I've seen some info about some IDS like Snort, I haven't tried them yet.
I should be able to use a signed certificate with a reverse proxy (Traefik) to improve security, and maybe use Authelia for 2FA. And maybe use Cloudflare Applications for authentication.
https://redd.it/1au1upb
@r_SelfHosted
Looking for Web Analytics with custom events and GPDR focused, no cookies
I'm getting crazy. All the options I've seen they strip the custom events feature in their selfhosted version, so it's only available in paid options. I'm currently installing Ackee, but I've seen it's not touched since 2 years ago.
Does anyone know a selfhosted Web Analytics app that supports custom events and does not use cookies, so it's GPDR ready? (no need for consent)
https://redd.it/1atyncq
@r_SelfHosted
Open source frontend database/web app creator recommendations?
I'm looking for a good database UI builder for a front end web application. I thought this would be a simple google but I have been led down the rabbit hole of paid or niche but dated software.
I have also looked at this:
GitHub - awesome-selfhosted/awesome-selfhosted: A list of Free Software network services and web applications which can be hosted on your own servers
But most of these are paid and whilst good, I only need it for about 5-10 users without the arbitrary software restrictions that come with a free plan. Not only that but I have a good backup solution and don't mind hosting and developing this on the LAN.
Our current solution is a MS Access database, It's not the best.
Ideally if you know of any that is:
\- Available for docker
\- Connects to MariaDB
\- LDAP
\- Easy to use
Is this too much of a request or is this looking like its going to cost me?
https://redd.it/1atvrkq
@r_SelfHosted
Rate my self hosted NFS
https://redd.it/1attg4d
@r_SelfHosted
client-ip=209.85.220.73;
Authentication-Results: mx.google.com;
dkim=pass header.i=@google.com header.s=20230601 header.b=wWtqeNdG;
spf=pass (google.com: domain of 3kpxmzqusbcuifmmpibqqzobujpo.hmpcbmbebnibqqzobujpo.hmpcbm@calendar-server.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3kpXMZQUSBCUIFMMPIBQQZOBUJPO.HMPCBMBEBNIBQQZOBUJPO.HMPCBM@calendar-server.bounces.google.com;
dmarc=fail (p=QUARANTINE sp=NONE dis=QUARANTINE) header.from=happynation.global
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=google.com; s=20230601; t=1707906450; x=1708511250; darn=happynation.global;
h=to:from:subject:date:message-id:auto-submitted:sender:reply-to
:mime-version:from:to:cc:subject:date:message-id:reply-to;
bh=+7yXL+H2U9Jw8b+9chW6ynHpy3SNw5jt9nXt0qtbERY=;
b=wWtqeNdGhVpAYyHdxES46qy2q00L4SDuqDZrLElAtW/Y2T6QjRZTD+L/DK0UmEB7mM
3Lwb6FMId3zSbxPYUtOH/OLZ8QHAoveZcsyVzf4G3WK6kpW1zeQIET11EHeXiBhgwNij
m8vgx0Dirc+VHGDWSOtMtJj4ilSFSkjagrhsXG8Xk8CxYNBC+4ezLxcxJM6DVnJEViFb
C2azFgglboP5mVerPHCF2IQVOzqC6qn4tb/RTP7df/9iMltMYA2GLmdQ18ooagXBLkQX
BjqRdcXWLI06+pLf6T/jRElHATnzIKyHReccUgCUtlhI9CBG6iN0fzTkoPn3KA9e9Fuc
VxQw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1707906450; x=1708511250;
h=to:from:subject:date:message-id:auto-submitted:sender:reply-to
:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
:reply-to;
bh=+7yXL+H2U9Jw8b+9chW6ynHpy3SNw5jt9nXt0qtbERY=;
b=eR8vSDgjsGvsXP3nph79LP6xJW1svzUsAaRgY4V6J+r8O6+0L/1VKLHCOB5AQp3+C5
CkqneyDm0cHBmnmXUVHGr03ahqUqSeK8C4ArOjAz3Jq4B/guq0JY6sCWIxWBBei1FnMs
zQ/LjG/kf4+4Dpb9q55IwfwNTha4cTTLfjHaLRiZjaaN3+Fu2ic8KcGMigWkd4ALU6kW
jO3vANlzaPsHneksJ19Ha5mv4bqdtA4vh0k+07WgImLQIrg6G2hxfA5W+/YTYTZIOEE9
fD9Vxg5XqM3vEPQmvUnu6pN54QDgYxryK8aIszGjekwFxcfyyKzfpgCaMelUbWUb5vPU
E1Ww==
X-Gm-Message-State: AOJu0YzyO+1kvwzhXLE6/6gYPeoayvJK3889ULqCNcE9SQ+JoLPMXWnI mQ71pQWI45/VU5TIHmrNvA2QFw4I9e0x743FSy7BkJYq7YgOk2Y9kJo81SzoA4YFTo0DbBeQl5o woVU3VipnnJrjBMRS+ZwTSrUqL+IGC8Br1g==
X-Google-Smtp-Source: AGHT+IEh9Q14RcISbPx5AIY+VWB0Bnp3Zew7+kDVoAuiamflG35uzm2ALBRwSl4h27F8mPfrL6NFTr2yqRZuQLnEEz5q
MIME-Version: 1.0
X-Received: by 2002:a05:600c:3b26:b0:410:d3b8:d39c with SMTP id m38-20020a05600c3b2600b00410d3b8d39cmr1811030wms.29.1707906450225; Wed, 14 Feb 2024 02:27:30 -0800 (PST)
Reply-To: Happy Nation Global hello@happynation.global
Sender: Google Calendar calendar-notification@google.com
Auto-Submitted: auto-generated
Message-ID: calendar-78278b37-b9d5-43ad-8bdb-57f5ff8d2bf9@google.com
Date: Wed, 14 Feb 2024 10:27:30 +0000
Subject: Happy Nation Global has shared a calendar with you
From: Happy Nation Global hello@happynation.global
To: adam@happynation.global
Content-Type: multipart/alternative; boundary="000000000000468362061154f53c"
\--000000000000468362061154f53c
Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=yes
\--000000000000468362061154f53c
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
\--000000000000468362061154f53c--
https://redd.it/1atra1c
@r_SelfHosted
Useful software to host?
I'm not finding anything new to host on my server and that takes out the fun. What would you recommend for me to set up?
I have one DL380p with 100 GB of RAM, 10 TB of RAID-5 storage, two E5-2680 v1. I run ESXi on it.
Right now, I have:
- Vaultwarden
- Heimdall
- Crafty Controller
- vCenter
- qBittorrent
- Jellyfin
- Homeassistant OS
- Windows Server
- Portainer
- Apache for getting HTTPS certificate via Let'sEncrypt
I am looking into adding another host for vMotion/HA, and upgrading my network to 10 Gbps, but both require money I don't want to spend right now. Thanks in advance for help!
https://redd.it/1atq68m
@r_SelfHosted
Any docker based app that allows you to extract tables from pdf or images?
Hi guys, I am looking for a self-hosted app (docker based would be great) that can extract tables from images or pdf pages. I looked into stiring PDF but it does not support this functions. Would like the tables to be extracted in csv or excel format.
There are many online services that provide this feature but they are not free and also not self-hosted.
Anyone has any ideas?
Thanks in advance.
https://redd.it/1atmkr0
@r_SelfHosted
Announcing New Unraid OS License Keys
https://forums.unraid.net/topic/154463-announcing-new-unraid-os-license-keys/
https://redd.it/1auus7v
@r_SelfHosted
Spam email from my own domain? Did my keys leak?
https://redd.it/1auk63i
@r_SelfHosted
If you're using Docker containers, restic backups are a must
I recently reinstalled my home server's OS (Ubuntu) and I used restic to restore all Docker volumes. Everything was so smooth, I was able to get back to the previous state (even Jellyfin, I use the Linuxserver image, remembered every episode/movie position) within an hour of starting everything afresh.
I would strongly recommend regularly backing up Docker volumes using restic (it's in the Ubuntu repository already) because it works like magic.
I can now sleep easy knowing that even if the OS gets messed up, I can simply start from scratch and restore everything from restic backups.
https://redd.it/1aufnlf
@r_SelfHosted
PSA: Unraid might be changing license models
So, it looks like Unraid is switching things up and moving towards an "annual support" model for updates. They just rolled out this new update system, and in their latest blog post, they mentioned:
>This is an entirely new experience from the old updater and was designed to streamline the process, better surface release information, and resolve some common issues.
>
>(https://unraid.net/blog/new-update-os-tool)
Their code tells a different story, though:
if (cee.value) {
const eee =
"Your {0} license included one year of free updates at the time of purchase. You are now eligible to extend your license and access the latest OS updates.",
tee =
"You are still eligible to access OS updates that were published on or before {1}.";
Or:
text: tee.t("Extend License"),
title: tee.t(
"Pay your annual fee to continue receiving OS updates."
),
}),
Some translation pieces too:
Starter: "Starter",
Unleashed: "Unleashed",
Lifetime: "Lifetime",
"Pay your annual fee to continue receiving OS updates.":
"Pay your annual fee to continue receiving OS updates.",
"Your license key's OS update eligibility has expired. Please renew your license key to enable updates released after your expiration date.":
"Get a Lifetime Key": "Get a Lifetime Key",
"Key ineligible for future releases": "Key ineligible for future releases",
(Source for all of these: /usr/local/emhttp/plugins/dynamix.my.servers/unraid-components/_nuxt/unraid-components.client-92728868.js)
https://redd.it/1aue3rc
@r_SelfHosted
My first dashboard
https://redd.it/1aub2zy
@r_SelfHosted
Cheap VPS Host with lots of HDD Storage ?
I want to have my manga collection online with Kavita, but all hosters i found so far are very overpriced for HDD Storage.
Does someone here know a hoster where i can get a VPS with these Specs under 10€(12$)
min 2 Cores
min 4GB Ram
SSD torage for OS
1TB or more HDD Storage
I tried Contabo, but their shit has like 50% availibility at best and is down like every second day for a few minutes..
At best the Hoster should have a Option so i can upgrade the HDD Storage with needs later.
https://redd.it/1au45or
@r_SelfHosted
What happened to the Pairdrop GitHub?
I’m getting a 404 Not found
https://redd.it/1au269o
@r_SelfHosted
I have an Arr setup on my NAS, but want to create a power schedule but keep Overseer requests at all times
So I have a Synology NAS set up with Plex and the Arr suite working just great, but I'd like to reduce my power consumption by implementing a startup/shutdown schedule on the NAS. I am okay with Plex only being available through part of the day, but I would like keep Overseer requests available 24/7. I have a Raspberry Pi that can host the Overseer container that I'm happy to keep running since it's got a much smaller power draw.
Will this work though? Will Overseer be able to receive requests when the NAS is powered off, or do I need to migrate more of the Arr stack over to the Pi?
Thanks in advance, would love to take your advice
https://redd.it/1atz5h1
@r_SelfHosted
Seeking advice for my SaaS CRM business - Viability and Scalability
Hey /r/selfhosted
I'm planning to start a SaaS business offering CRM solutions to businesses, and after some research, I came across PerfexCRM. It seems to have a wide range of features that could potentially meet the needs of my target market.
Before diving in, I wanted to reach out to this amazing community to get your thoughts and insights on the viability and scalability of PerfexCRM for my business. I value your experiences and expertise, and I believe your input can help me make an informed decision.
\- Does PerfexCRM offer the scalability needed to accommodate a growing customer base? Have you encountered any limitations in terms of user capacity or performance?
\- Are there any specific features or functionalities in PerfexCRM that have proven to be particularly useful for your business?
\- Have you faced any challenges or drawbacks while using PerfexCRM? If so, how did you overcome them?
​
I appreciate any insights, personal experiences, or tips you can provide. Feel free to share any other CRM scripts or alternatives that you think might be a better fit for a growing SaaS CRM business.
Thank you all in advance for your help. I look forward to hearing your thoughts and engaging in a fruitful discussion!
https://redd.it/1atwqzh
@r_SelfHosted
docker macvlan network overlapse?
I have created a macvlan network config (see below) in portainer. But when i try to create this network (from this config) i get an error "Pool overlapse with one on this address space" I have no other docker networks that start with 192. The 192. subnet is the same one my LAN is using.
Also no other with this IPv6 subnet.
Only idea what i am missing?
​
IPV4 Subnet - 192.*.*.0/24
IPV4 Gateway - 192.*.*.1
IPV4 IP Range - 192.168.*.*.0/24
IPV6 Subnet - 2***:a***:2***:222::/64
IPV6 Gateway - 2***:a***:2***:222:250:56ff:feb3:5149
IPV6 IP Range - 2***:a***:2***:222::/64
https://redd.it/1atuibs
@r_SelfHosted
RAM Question from a Hardware Newbie
I have two mini PCs (inherited from an estate). I have been running one for three years, the other for a few weeks.
I was thinking of upping the RAM a bit, to increase performance. For example I want to host some RAG stuff using bionigGPT (would more RAM even help improve embedding speeds??)
Using dmidecode, I saw that one of them has 16 GB RAM (2x8), with a maximal capacity of 32 GB and the other 32 (2x16), with a maximum capacity of 64GB. So I was thinking of buying two 32 GB sticks, transferring the 16 GB sticks to the weaker rig and having a 64 and a 32 machine (I hope this makes sense).
I have never in my life touched any hardware beyond connecting stuff to USB or wiring a plug for a kettle. So here are my questions:
Is this a sensible thing to do?
Are there different types of RAM sockets?? How can I find out the types?
If I do this, is it as easy as shutting down, removing a piece and adding another, booting it up? Or do I have to do anything else?
What should I do in order to not lose everything?
Thanks a lot in advance!
https://redd.it/1atshyq
@r_SelfHosted
Google calendar share invites failing DMARC
​
Hello all. I have the Google workspace DKIM record copied and set in my dns entry page's DKIM record. I have also enabled the start authentication option on Google workspace. However still the calendar invites that I send get blocked or sent to spam, The mail's pass 'SPF ' & 'DKIM' but 'fail' the DMARC check. Can you suggest how to fix the alignment issues between the' from domain' and ASPF and DKIM domains. PFB the mail header :
Original Message
Message ID calendar-78278b37-b9d5-43ad-8bdb-57f5ff8d2bf9@google.com
Created at: Wed, Feb 14, 2024 at 11:27 AM (Delivered after 0 seconds)
From: Happy Nation Global hello@happynation.global
To: adam@happynation.global
Subject: Happy Nation Global has shared a calendar with you
SPF: PASS with IP 209.85.220.73 Learn more
DKIM: 'PASS' with domain google.com Learn more
DMARC: 'FAIL' Learn more
Download Original Copy to clipboard
Delivered-To: adam@happynation.global
Received: by 2002:a05:7001:a40c:b0:555:6189:6d13 with SMTP id vo12csp931105mab;
Wed, 14 Feb 2024 02:27:30 -0800 (PST)
X-Received: by 2002:a05:600c:1f0d:b0:411:f852:8e0d with SMTP id bd13-20020a05600c1f0d00b00411f8528e0dmr320097wmb.12.1707906450726;
Wed, 14 Feb 2024 02:27:30 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1707906450; cv=none;
d=google.com; s=arc-20160816;
b=zhV6+3FeafxRYLA7i6SXMSfsD66wsuFk5XqkvuwMHsrYAEcMkqztVfFS2CLsTfhO0d
hqnnm1/kml2bjy0l1TauxfDi6swLbh350qlsClXaY3YQgv/15dPtVt/x7TZC0ZIEcr99
rMBcCmjiS1Or4nY7c4WBphg1BhgwgLlq08CUpRqHv1m690Z1cYJk9YSVtMdcweNXl4yZ
pV/KbFWAN7xFv69Atjfr65YuqSluECtoP1ohc1HfZSRc7GhT3T6wkRCpYdYSuJKPldyX
3OOR10b9vEs7Ayrsq3jCe9RgiM25E0o7WvhU/DRjCBpRbYQkcXwfe+CGoe6Y4nEpYJwX
qwBQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=to:from:subject:date:message-id:auto-submitted:sender:reply-to
:mime-version:dkim-signature;
bh=+7yXL+H2U9Jw8b+9chW6ynHpy3SNw5jt9nXt0qtbERY=;
fh=DAHRn1l1VVo8hYLtv0e0m1dQqEkHV0tn+SJ5glJIEFw=;
b=veFg0yKUVuji93QrokPafNv25HjXRMxZ+YgWOlSyKvTxH9RcYd2bDA6ocRayY45Pf0
19XzA+E8ch1ImNKkZyiPsTqzININ3YXvQNd/fshXbvDRz+Wt/UdFVno46ipO8q1/Yeev
kQyamGYZnUmC8L4d/Wcn59OkXLkW8TwnSBdqjOz+5Yixvr+zCqf+rqU76R/fCPnaSNbC
I1yjM+U0iVjpr+QIeJlbhG++l8I3GOOxG6MQiUvZgCKvUd+tn9cm9W8aKP44RJkC3Gqc
Ia+vSlixMRIc+qNxAEJw7KmdlcH7w1m3aHnJoAPcm7VG8yFFXyQR/QPxiGAmujzV/pID
9C0w==;
darn=happynation.global
ARC-Authentication-Results: i=1; mx.google.com;
dkim=pass header.i=@google.com header.s=20230601 header.b=wWtqeNdG;
spf=pass (google.com: domain of 3kpxmzqusbcuifmmpibqqzobujpo.hmpcbmbebnibqqzobujpo.hmpcbm@calendar-server.bounces.google.com designates 209.85.220.73 as permitted sender) smtp.mailfrom=3kpXMZQUSBCUIFMMPIBQQZOBUJPO.HMPCBMBEBNIBQQZOBUJPO.HMPCBM@calendar-server.bounces.google.com;
dmarc=fail (p=QUARANTINE sp=NONE dis=QUARANTINE) header.from=happynation.global
Return-Path: 3kpXMZQUSBCUIFMMPIBQQZOBUJPO.HMPCBMBEBNIBQQZOBUJPO.HMPCBM@calendar-server.bounces.google.com
Received: from mail-sor-f73.google.com (mail-sor-f73.google.com. [209.85.220.73\])
by mx.google.com with SMTPS id h9-20020a05600c350900b0041024549589sor3200353wmq.12.2024.02.14.02.27.30
for adam@happynation.global
(Google Transport Security);
Wed, 14 Feb 2024 02:27:30 -0800 (PST)
Received-SPF: pass (google.com: domain of 3kpxmzqusbcuifmmpibqqzobujpo.hmpcbmbebnibqqzobujpo.hmpcbm@calendar-server.bounces.google.com designates 209.85.220.73 as permitted sender)
Self hosting my website architecture?
What architecture to use?
I want to use:
- Firewall
- WAF
- reverse proxy
- ssl termination
- static sites in one proxy
- load balancing and many more
Please guide me ultimate roadmap.
https://redd.it/1atox52
@r_SelfHosted
Firearm/Range/Ammunition Tracker
Anyone aware of software for firearm, range time, and ammo tracking?
I currently just use an app on my phone but the interface is lacking and backup is a major pain.
I found a few options on GitHub but they all seem to track one category.
https://redd.it/1atl1xu
@r_SelfHosted