{"id":66,"date":"2017-07-05T00:00:00","date_gmt":"2017-07-05T00:00:00","guid":{"rendered":"http:\/\/ssdnodes.billabailey.com\/2017\/07\/05\/5-self-hosted-and-docker-friendly-apps-im-installing-this-weekend\/"},"modified":"2025-05-18T12:31:06","modified_gmt":"2025-05-18T12:31:06","slug":"self-hosted-docker-friendly-apps","status":"publish","type":"post","link":"https:\/\/www.ssdnodes.com\/blog\/self-hosted-docker-friendly-apps\/","title":{"rendered":"5 self-hosted, Docker-Friendly apps to install this weekend"},"content":{"rendered":"<p>Perhaps the best thing about having a VPS is the ability to experiment with hosting pretty much any application out there. And by using Docker as the foundation, it gets so much easier to try something, have it fail, and then try again.<\/p>\n<p>We feature many of them in our\u00a0<a href=\"https:\/\/www.ssdnodes.com\/blog\/self-hosted-alternatives-ultimate-guide\/\">self-hosted alternatives guide<\/a>, but personally, I'm excited about a select few applications that I'll be able to use to get more productive and reduce my reliance on other SaaS apps that keep pestering me to upgrade to a premium membership that offers features I don't want or need. Plus, having control of my data is infinitely appealing.<\/p>\n<h2>1. Monica \u2014 a \"CRM\" for your friends and family<\/h2>\n<p><img decoding=\"async\" title=\"The Monica interface\" src=\"https:\/\/www.ssdnodes.com\/wp-content\/uploads\/2017\/07\/20170705_monica.png\" alt=\"The Monica interface\" \/><\/p>\n<p>Monica is an open source application to help people manage the relationships between their friends and family.<\/p>\n<blockquote><p>Monica allows people to keep track of everything that's important about their friends and family. Like the activities done with them. When you last called someone. What you talked about. It will help you remember the name and the age of the kids. It can also remind you to call someone you haven't talked to in a while.<\/p><\/blockquote>\n<p>The Monica repository comes with a\u00a0<code>docker-compose<\/code>\u00a0file, so that's pretty much all you need to get started. The installation instructions are a little more complex than simply running a\u00a0<code>docker<\/code>\u00a0command, so it's best to just point you in the direction of\u00a0<a href=\"https:\/\/github.com\/monicahq\/monica\/blob\/master\/docs\/installation\/docker.md\" target=\"_blank\" rel=\"noopener\">how to install Monica<\/a>.<\/p>\n<div class=\"cta-inline\"><\/div>\n<h2>2. GitLab \u2014 a self-hosted GitHub competitor<\/h2>\n<p>I have a number of small Git repositories that I use to manage some personal applications and web development projects, and some are things I don't want to expose to the public, which is the default in GitHub (unless you're willing to pay up). For example, I just migrated away from one of the popular password managers to\u00a0<a href=\"https:\/\/www.passwordstore.org\/\" target=\"_blank\" rel=\"noopener\">Pass by zx2c4<\/a>, which uses GPG keys for privacy and Git to synchronize the keystore across machines\u2014my GPG keys are 4096-bit, but I'd rather not have someone cloning a public repository with all my passwords. By self-hosting with GitLab, I can keep the keys secure\u00a0<em>and<\/em>\u00a0private.<\/p>\n<p>A GitLab\u00a0<a href=\"https:\/\/www.ssdnodes.com\/blog\/tutorial-setting-up-your-own-gitlab-repository\/\">installation from scratch<\/a>\u00a0is pretty complex, but with Docker, that's made a lot easier.<\/p>\n<pre><code class=\"language-shell hljs\"><span class=\"hljs-meta\">$<\/span><span class=\"bash\"> docker run --detach <\/span>\n    --hostname gitlab.example.com \n    --publish 443:443 --publish 80:80 --publish 22:22 \n    --name gitlab \n    --restart always \n    --volume \/srv\/gitlab\/config:\/etc\/gitlab \n    --volume \/srv\/gitlab\/logs:\/var\/log\/gitlab \n    --volume \/srv\/gitlab\/data:\/var\/opt\/gitlab \n    gitlab\/gitlab-ce:latest\n<\/code><\/pre>\n<h2>3. wger Workout Manager \u2014 fairly self-explanatory, no?<\/h2>\n<p>Being someone who works entirely from home, I could go a whole day without doing something active if I wasn't careful. Being able to do some workouts in my backyard (one of the benefits of living in Arizona is the year-round ability to do just this) is one of the reliable methods for me to stay (relatively) in shape, and wger will help me better manage my progress. Much better than my horribly organized Google Sheet.<\/p>\n<p>To install, just clone the\u00a0<a href=\"https:\/\/github.com\/wger-project\/wger\" target=\"_blank\" rel=\"noopener\">Git repository<\/a>\u00a0and run the following:<\/p>\n<pre><code class=\"language-shell hljs\"><span class=\"hljs-meta\">$<\/span><span class=\"bash\"> docker build -t wger\/devel .<\/span>\n<span class=\"hljs-meta\">$<\/span><span class=\"bash\"> docker run -ti --name wger.apache --publish 8000:80 wger\/apache<\/span>\n<\/code><\/pre>\n<p>Once inside the Docker container, you can start the server.<\/p>\n<pre><code class=\"language-shell hljs\"><span class=\"hljs-meta\">$<\/span><span class=\"bash\"> <span class=\"hljs-built_in\">source<\/span> ~\/venv\/bin\/activate<\/span>\n<span class=\"hljs-meta\">$<\/span><span class=\"bash\"> python manage.py runserver 0.0.0.0:8000<\/span>\n<\/code><\/pre>\n<p>More detailed instructions can be found in the\u00a0<a href=\"https:\/\/wger.readthedocs.io\/\" target=\"_blank\" rel=\"noopener\">administration guide<\/a>.<\/p>\n<h2>4. Tiny Tiny RSS \u2014 for less obtrusive feed reading<\/h2>\n<p><img decoding=\"async\" title=\"The Tiny Tiny RSS interface\" src=\"https:\/\/www.ssdnodes.com\/wp-content\/uploads\/2017\/07\/20170705_ttrss.png\" alt=\"The Tiny Tiny RSS interface\" \/><\/p>\n<p>In the great void left behind the loss of Google Reader, I was one of the many people who migrated toward Feedly, which seemed like a simple alternative. Over the years, however, it's grown considerably, and now it seems like every time I log in, they're trying to upsell me with another &quot;discovery&quot; feature I don't need. Time to jump ship.<\/p>\n<p>Tiny Tiny RSS is just that: a very simple self-hosted RSS reader. Thanks to a rich developer community, one person has put together a\u00a0<a href=\"https:\/\/github.com\/clue\/docker-ttrss\" target=\"_blank\" rel=\"noopener\">simple Docker image<\/a>\u00a0for installing it on a VPS. First, you need to start up a PostgreSQL container, followed by TTRSS.<\/p>\n<pre><code class=\"language-shell hljs\"><span class=\"hljs-meta\">$<\/span><span class=\"bash\"> docker run <span class=\"hljs-_\">-d<\/span> --name ttrssdb nornagon\/postgres<\/span>\n<span class=\"hljs-meta\">$<\/span><span class=\"bash\"> docker run <span class=\"hljs-_\">-d<\/span> --link ttrssdb:db -p 80:80 clue\/ttrss<\/span>\n<\/code><\/pre>\n<p>You might want to expose a different port, but that's entirely up to you!<\/p>\n<h2>5. wallabag \u2014 save entire web pages<\/h2>\n<p>In the last few weeks, I've had two new hobbies take up a majority of my free time:\u00a0<a href=\"https:\/\/www.ssdnodes.com\/blog\/5-lessons-factorio-taught-me-about-development\/\">Factorio<\/a>\u00a0and beginner-level woodworking projects. In both cases, I find myself saving a lot of bookmarks of both finished projects (for inspiration when I actually get some decent skills), and tutorials that walk me through something I've never done before.<\/p>\n<p>In both cases, it's nice not just to bookmark an interesting page, but actually save it in its entirely. You never know when a really great tutorial you're meaning to try out in a few months simply disappear from the internet.<\/p>\n<p>Enter wallabag, which takes Pocket or Instapaper a step further and saves entire pages. The basic installation (with persistent storage) is relatively simple:<\/p>\n<pre><code class=\"language-shell hljs\"><span class=\"hljs-meta\">$<\/span><span class=\"bash\"> docker run -v \/opt\/wallabag\/data:\/var\/www\/wallabag\/data -v -\/opt\/wallabag\/images:\/var\/www\/wallabag\/web\/assets\/images -p 80:80 wallabag\/wallabag<\/span>\n<\/code><\/pre>\n<p>Again, this will run on port 80, so depending on your configuration, you might need to change this.<\/p>\n<p>I hope this gave you some inspiration you can take into you weekend! Let me know if you have other self-hosted apps you've been eyeing, and I just might add them to our\u00a0<a href=\"https:\/\/www.ssdnodes.com\/blog\/self-hosted-alternatives-ultimate-guide\/\">ultimate guide<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Perhaps the best thing about having a VPS is the ability to experiment with hosting pretty much any application out there. And by using Docker as the foundation, it gets so much easier to try something, have it fail, and then try again.<\/p>\n","protected":false},"author":20,"featured_media":67,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[41,18],"tags":[182],"class_list":["post-66","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-comparisons","category-devops","tag-docker"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts\/66","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/comments?post=66"}],"version-history":[{"count":3,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts\/66\/revisions"}],"predecessor-version":[{"id":12985,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/posts\/66\/revisions\/12985"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/media\/67"}],"wp:attachment":[{"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/media?parent=66"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/categories?post=66"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ssdnodes.com\/wp-json\/wp\/v2\/tags?post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}