this post was submitted on 14 Jul 2025
129 points (97.1% liked)

Selfhosted

49599 readers
456 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

I'm not really sure how to ask this because my knowledge is pretty limited. Any basic answers or links will be much appreciated.

I have a number of self hosted services on my home PC. I'd like to be able to access them safely over the public Internet. There are a couple of reasons for this. There is an online calendar scheduling service I would like to have access to my caldav/carddav setup. I'd also like to set up Nextcloud, which seems more or less require https. I am using http connections secured through Tailscale at the moment.

I own a domain through an old Squarespace account that I would like to use. I currently have zero knowledge or understanding of how to route my self hosted services through the domain that I own, or even if that's the correct way to set it up. Is there a guide that explains step by step for beginners how to access my home setup through the domain that I own? Should I move the domain from Squarespace to another provider that is better equipped for this type of setup?

Is this a bad idea for someone without much experience in networking in general?

you are viewing a single comment's thread
view the rest of the comments
[–] uranibaba@lemmy.world 1 points 3 days ago* (last edited 3 days ago)

Is it considered best practice to run a bunch of different compose files, and update them all separately?

tl;dr I do one compose file per application/folder because I found that to suite me best.

I knew about docker and what is was for a long time, but just recently started to use it (past year or so) so I'm no expert . Before docker, I had one VM for each application I wanted and if I messed something up (installed something and it broke or something), I just removed the entier VM and made a new one. This also comes with the problem that every VM needs to be stopped before the host can be shutdown, and startup took more work to ensure that it worked correctly.

Here is a sample of my layout:

.
├──audiobookshelf
│  ├──config
├──diun
│  └───data
├──jellyfin
├──kuma
├──mealie
│  ├──data
│  └──pgdata
├──n8n
│  ├──n8n_data
│  └──n8n_files
├──paperless
│  ├──consume
│  └──export
├──syncthing
│  └──data
└───tasksmd
    └──config

I considered using one compose file and put everything in it by opted to instead use one file for each project. Using one compose file for everything would make it difficult to stop just one application. And by having it split into separate folders, I can just remove everything in it if I mess up and start a new container.

As for updating, I made script that pulls everything:

#!/bin/bash

function docker_update {
    cd $1
    docker compose down && docker compose pull && docker compose up -d
}
docker_update "/path/to/app1"
docker_update "/path/to/app2"
docker_update "/path/to/app3"

Here is a small sample from my n8n compose file (not complete file):

services:
  db:
    container_name: n8n-db
    image: postgres
    ...
    networks:
      - n8n-network

  adminer:
    container_name: n8n-db-adminer
    image: adminer
    restart: unless-stopped
    ports:
      - 8372:8080
    networks:
      - shared-network
      - n8n-network

  n8n:
    container_name: n8n
    networks:
      - n8n-network
      - shared-network
    depends_on:
      db:
        condition: service_healthy

volumes:
  db_data:

networks:
  n8n-network:
  shared-network:
    external: true

shared-network is shared between Caddy and any containter I need to access to externally (reverse proxy) and then one network that is shared between the applications.