vegetaaaaaaa

joined 2 years ago
[–] [email protected] 2 points 2 days ago

Tested SMS Import/Export (installed from F-droid), works fine.

[–] [email protected] 1 points 5 days ago (1 children)

Ansible should only run to make changes to a existing system.

No. Ansible is fine for provisioning and initial deployment.

[–] [email protected] 1 points 5 days ago

Back up your git service/repositories to offline storage.

[–] [email protected] 3 points 1 week ago

Right, I just spent 10 minutes looking for documentation that doesn't involve shitty expensive SaaS/PaaS, couldn't find anything. That disqualifies it for me as well, sorry for wasting your time.

I'll keep watching this thread, relevant to my interests as well. At work we let ansible (in pull mode) handle the Linux fleet, Android we don't have enough devices to bother, and are looking towards jamf for macs. But I'd love to find a FOSS solution too, our requirements are simple enough (as you said install/remove stuff, change basic settings)

[–] [email protected] 1 points 1 week ago

My prod and testing environments are 2 libvirt VMs on the same hypervisor. They run the same services, deployed and managed by ansible. The testing VM just gets less disk/CPU/RAM resources, and is powered off most of the time. Simple config changes? Straight to prod. New feature, risky change? Testing first.

[–] [email protected] 1 points 1 week ago

Ionos works for me. I've used OVH, Scaleway as well, no problems.

[–] [email protected] 7 points 1 week ago (2 children)

https://fleetdm.com/ doesn't look bad, would this work?

[–] [email protected] 2 points 3 weeks ago

Data loss is not a problem specific to self-hosting.

Whenever you administrate a system that contains valuable data (a self-hosted network service/application, you personal computer, phone...), think about a backup and recovery strategy for common (and less common) data loss cases:

  1. you delete a valuable file by accident
  2. a bad actor deletes or encrypts the data (ransomware)
  3. the device gets stolen, or destroyed (hardware failure, power surge, fire, flood, hosting provider closing your account)
  4. anything you can think of

For these different scenarios try to find a working backup/restore strategy. For me they go like

  1. Automatic, daily local backups (anything on my server gets backed up once a day to a backups directory using rsnapshot). Note that file sync like nextcloud won't protect you against this risk, if you delete a file on the nextcloud client it's also gone on the Nextcloud server (though there is a recycle bin). Local backups are quick and easy to restore after a simple mistake like this. They wont protect you against 2 and 3.
  2. Assuming an attacker gains access to your machine they will also destroy or encrypt your local backups. My strategy against this is to pull a copy of the latest local backup, weekly, to a USB drive, through another computer, using rsync/rsnapshot. Then I unplug the USB drive, store it somewhere safe outside my home, and plug in a second USB drive. I rotate the drives every week (or every 2 weeks when I'm lazy - I have set up a notification to nag me to rotate the drive every saturday, but I sometimes ignore it)
  3. The USB strategy also protects me against 3. If both my server and main computer burn down, the second drive is still out there, safely encrypted. It's the worst case scenario, I'd probably spend quite some time setting up everything again (though most of the setup is automated), and at this point I'd have bigger problems like, you know, burned down house. But I'd still have my data.

There are other strategies, tools, etc, this one works for me. It's cheap (the USB drives are a one-time investment), the only manual step is to rotate the drives every week or so.

[–] [email protected] 1 points 3 weeks ago (1 children)

If you're interested I wrote a quick HOWTO to migrate TT-RSS data from Mysql to Postgres a while ago. Ctrl+F search for Migrating tt-rss data to Postgresql from a MySQL-based installation here

I still use that same migrated database 4 years later

[–] [email protected] 2 points 1 month ago* (last edited 1 month ago)

upgrades:

  • distribution packages: unattended-upgrades
  • third party software: subscribe to the releases RSS feed (in tt-rss or rss2email), read release notes, bump version number in my ansible playbook, run playbook, done.

vulnerabilities:

  • debsecan for distribution packages
  • trivy fort third-party applications/libraries/OCI images
  • wazuh for larger (work) setups
[–] [email protected] 1 points 1 month ago (1 children)

Sometimes you need to understand the basics first. The points I listed are sysadmin 101. If you don't understand these very basic concepts, there is no chance you will be able to keep any kind of server running, understand how it works, debug certificate problems and so on. Once you're comfortable with that? Sure, use something "simpler" (a.k.a. another abstraction layer), Caddy is nice. The same point was made in the past about Apache ("just use nginx, it's simpler"). Meanwhile I still use apache, but if needed I'm able to configure any kind of web server because i taught me the fundamentals.

At some point we have to refuse the temptation to go the "easy" way when working with complex systems - IT and networking are complex. Just try the hard way first, read the docs, and if it's too complex/overwhelming/time-consuming, only then go for a more "noob-friendly" solution (I mean we're on c/selfhosted, why not just buy a commercial NAS or use a hosted service instead? It's easier). I use firewalld but I learned the basics of iptables a while ago. I don't build apache from source when I need to upgrade, but I would know how to get 75% there - the docs would teach me the rest.

[–] [email protected] 6 points 1 month ago* (last edited 1 month ago) (3 children)

By default nginx will serve the contents of /var/www/html (a.k.a documentroot) directory regardless of what domain is used to access it. So you could build your static site using the tool of your choice, (hugo, sphinx, jekyll, ...), put your index.html and all other files directly under that directory, and access your server at https://ip_address and have your static site served like that.

Step 2 is to automate the process of rebuilding your site and placing the files under the correct directory with the correct ownership and permissions. A basic shell script will do it.

Step 3 is to point your domain (DNS record) at your server's public IP address and forwarding public port 80 to your server's port 80. From there you will be able to access the site from the internet at http://mydomain.org/

Step 3 is to configure nginx for proper virtualhost handling (that is, direct requests made for mydomain.org to your site under the /var/www/html/ directory, and all other requests like http://public_ip to a default, blank virtualhost. You may as well use an empty /var/www/html for the default site, and move your static site to a dedicated directory.) This is not a strict requirement, but will help in case you need to host multiple sites, is the best practice, and is a requirement for the following step.

Step 4 is to setup SSL/TLS certificates to serve your site at https://my_domain (HTTPS). Nowadays this is mostly done using an automatic certificate generation service such as Let's Encrypt or any other ACME provider. certbot is the most well-known tool to do this (but not necessarily the simplest).

Step 5 is what you should have done at step 1: harden your server, setup a firewall, fail2ban, SSH keys and anything you can find to make it harder for an attacker to gain write access to your server, or read access to places they shouldn't be able to read.

Step 6 is to destroy everything and do it again from scratch. You've documented or scripted all the steps, right?

As for the question "how do I actually implement all this? Which config files and what do I put in them?", the answer is the same old one: RTFM. Yes, even the boring nginx docs, manpages and 1990's Linux stuff. Each step will bring its own challenges and teach you a few concepts, one at a time. Reading guides can still be a good start for a quick and dirty setup, and will at least show you what can be done. The first time you do this, it can take a few days/weeks. After a few months of practice you will be able to do all that in less than 10 minutes.

 

Old article I found in my bookmarks. Although I didn't have the use for it, I thought it was interesting.

 

Synapse and Dendrite relicensed to AGPLv3

 

Hi c/selfhosted,

I just wanted to let you know that I have added a frequently requested feature to https://awesome-selfhosted.net - the ability to filter the list by programming language or deployment platform. For example:

You can navigate between platforms/languages by clicking the relevant link in each software project's metadata. There is no main list of platforms, but if someone creates an issue for it, it can be looked into (please provide details on where/how you expect the platforms list to show up).

A quick update on project news since the new website was released (https://lemmy.world/post/3622280): a lot of curation work has been done, some incorrect data has been fixed, a few additions and some general improvements have been made. A deb platform has been added for those who prefer to deploy software through their distribution's package management system, and we're working on a Manufacturing tag for software related to 3D printing, CNC machines and other physical manufacturing tools.

awesome-selfhosted is a list of Free Software network services and web applications which can be hosted on your own server(s).

The "old", markdown-formatted list remains available at https://github.com/awesome-selfhosted/awesome-selfhosted and will keep being updated automatically.

The project is maintained by volunteers under the CreativeCommons BY-SA 3.0 License, at https://github.com/awesome-selfhosted/awesome-selfhosted-data.

Thanks again to all contributors.

4
submitted 2 years ago* (last edited 2 years ago) by [email protected] to c/[email protected]
 

Blog post about TLS certificates lifetime

 

This is a new, improved version of https://github.com/awesome-selfhosted/awesome-selfhosted/

Please check the release announcement for more details.

Maintainer here, happy to answer questions.

view more: next ›