link: https://github.com/azukaar/Cosmos-Server/

Hello everyone!

December is upon us and it is time for me to hibernate. But before, let me introduce you the last update of the year: the holiday QoL update!

Before I do that, I have started a product hunt profile, if you have a second please take a moment to support the projet: https://www.producthunt.com/posts/cosmos-7 :)

As a reminder, and for newcomers, Cosmos is a:

  • App Store 📦📱 To easily install and manage your applications, with simple installers, automatic updates and security checks. This works alongside manual installation methods, such as importing docker-compose files, or the docker CLI
  • Customizable Homepage 🏠🖼 To access all your applications from a single place, with a beautiful and customizable UI
  • Reverse-Proxy 🔄🔗 Targeting containers, other servers, or serving static folders / SPA with automatic HTTPS, and a nice UI
  • Authentication Server 👦👩 With strong security, multi-factor authentication and multiple strategies (OpenId, forward headers, HTML)
  • Container manager 🐋🔧 To easily manage your containers and their settings, keep them up to date as well as audit their security. Includes docker-compose support!
  • VPN 🌐🔒 To securely access your applications from anywhere, without having to open ports on your router.
  • Monitoring 📈📊 Fully persisting and real-time monitoring with customizable alerts and notifications, so you can be notified of any issue.
  • Identity Provider 👦👩 To easily manage your users, invite your friends and family to your applications without awkardly sharing credentials. Let them request a password change with an email rather than having you unlock their account manually!
  • SmartShield technology 🧠🛡 Automatically secure your applications without manual adjustments (see below for more details). Includes anti-bot and anti-DDOS strategies.

ANYWAY! In this holiday update, I came back on the most demanded quality of life features on Cosmos, and finally got around to implementing them!

First: Stacks. Cosmos now supports cosmos stacks AND docker-compose stacks, so it will pick up your existing docker-compose stacks, and display them together in the UI:

2 stacks in my servapps

Click on one of them and you will get the details of the containers. You can start, stop restart and destroy the entire stack all at once as well!

Which brings me to my second points, deletion. Isn’t it annoying to delete a container, THEN delete the volumes, THEN delete the networks, then the routes? Well now you don’t have to anymore, as deleting a container brings up the delete wizard:

This is so satisfying!! Wait… Did I just nuke my Immich instance for this screenshot? You bet I did!

Few other improvements went into this release but I cannot finish without mentionning, ICON EDITION! I cannot count how many times people asked me how to edit their icons… Well now you can actually do it!

https://preview.redd.it/l3u8hfqych2c1.png?width=600&format=png&auto=webp&s=a7317b24fa271a17498ee4376c8b24cfd0fcbcc5

OK! This wraps up the year nicely. Next year is full of exciting things and challenges, both for Cosmos and the selfhosting community, and I am very excited about it! I hope you are too!

Next year is going to be a big year, first the next update is the one where I will finally solve some existential crisis about Cosmos, where a few things are not what they shoud be because of the form factor. I might even end up take Cosmos out of Docker, in order to simplify many of the processes. Lots of work ahead.

But for now, I wish you all great holidays, whichever ones you celebrate, enjoy some nice xmas movies on Jellyfin, music with navidrome, and keep your holidays memory safe on Immich, I will see you next year with some exciting stuff!

complete changelog:

  • Display container stacks as a group in the UI
  • New Delete modal to delete services entirely
  • Upload custom icons to containers
  • improve backup file, by splitting cosmos out to a separate docker-compose.yml file
  • Cosmos-networks now have specific names instead for generic names
  • Fix issue where search bar reset when deleting volume/network
  • Fix breadcrumbs in subpaths
  • Remove graphs from non-admin UI to prevent errors
  • Rewrite the overwriting container logic to fix race conditions
  • Edit container user and devices from UI
  • Fix bug where Cosmos Constellation’s UDP ports by a TCP one
  • Fix a bug with URL screen, where you can’t delete a URL when there is a search
  • Fix issue where negative network rate are reported
  • Support array command and single device in docker-compose import
  • Add default alerts… by default (was missing from the default config)
  • disable few features liks Constellation, Backup and Monitoring when in install mode to reduce logs and prevent issues with the DB
  • gojailbreak@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    This is nice thanks for the update. I’ve been wanting to try this out on a synology running docker but can’t find any instructions on how to do it

    • little_fancy@alien.topB
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      have it running on my synology.

      my docker compose:

      version: '3.3'
      

      services: cosmos-server: ports: - ‘180:80’ - ‘1443:443’ container_name: cosmos-server hostname: cosmos-server restart: always privileged: true # Required for SELinux volumes: - ‘/var/run/docker.sock:/var/run/docker.sock’ - ‘/volume1/cosmos:/config’ - ‘/:/mnt/host:ro’ image: ‘azukaar/cosmos-server:latest’

      changed ports because its hard to free the ports on synology.

      if you want to use constellation you need to add port ‘4242:4242/udp’

      i have mounted host as read only because my syno once complained about wrong file ownership. but i was testing filebrowser docker at the same time, so im not sure who changed it. did not bother to investigate, as everything is working now.

    • azukaar@alien.topOPB
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Thanks!

      On syno a simple docker run will do it, there’s nothing “Specific” to syno AFAIK

      Aside from freeing the ports 80/443 if you want to use them

  • hackcasual@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Interesting project, really happy to see this tackling a lot of hard issues around security. This is my first hearing about it. How does it work with multiple servers? Currently my plan is to run home assistant from a NUC that has hardware access to the various wireless radios, Ave is discreetly located centrally in my house. Meanwhile Plex would go on a repurposed desktop with a decent GPU located in my garage.

    Are those and to share the same monitoring and authentication?

  • Usual-Efficiency-305@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Firstly I want to say thank you for Cosmos!

    I started selfhosting about six months ago and don’t really have the time to invest in learning the networking and Docker ins and outs. I was especially stuck on reverse proxies and Docker backups. It just didn’t click with me. With Cosmos I am starting to get an idea on the backup part.

    I also don’t want to expose anything to the WAN and that is where Cosmos excels for me. Most Docker tutorials and other PAAS/SAAS systems require a registered domain. I also have CGNAT ISP which complicates that, but not with Cosmos! I can keep everything walled off from the internet.

    Sadly, Cosmos was the last one I tried, wish I had tried it first! I love supporting projects like this, financially because I don’t have any knowledge to contribute.

    So again, thank you for Cosmos! Now I’m off to figure out how to update Cosmos!

  • 10031@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Can i use Cosmos but but not the inbuilt reverse proxy? Looks great however i would prefer to keep using Traefik.

    • azukaar@alien.topOPB
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      You can, not all feature will work thought because with traefik, if you use labels based routes you won’t be able to chain proxies

    • rcm_rx7@alien.topB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I installed it after the last post here and it was really cool, I like how easy it was to try out different apps with really minimal effort, I ended up installing a few in my other docker instance afterwards. My issue was the reverse proxy as well. I run Proxmox with multiple LXCs and a few VM’s that I access with NPM. I couldn’t figure out how to completely disable the reverse proxy in Cosmos and I was having issues even accessing Cosmos locally. I ended up removing it because of that. If there was an option (or something I’m missing) to disable the reverse proxy altogether I would still be using it.

      It’s a great program, way easier than what I did to get my setup working!