CasaOS - A simple, easy-to-use, elegant open-source home server system.

Overview

CasaOS - A simple, easy-to-use, elegant open-source home server system.

CasaOS

Version Pull Requests Issues GitHub Stars Discord

CasaOS is an open-source home server system based on the Docker ecosystem and designed for home scenarios. It is committed to building the world's most simple, easy-to-use, and elegant home server system.

IceWhale team believes that through community-driven collaborative innovation and open communication with global developers, we can reshape the digital home experience like never before.

Key Features

  • UI designed for home scenarios - simple, elegant, and easy-to-use
  • Quick Docker app installation with only three steps, plus automatic management
  • App Store for private cloud 🚧
  • Home data/digital asset management 🚧
  • Smart home manager 🚧

🚧 is under development.

We are actively moving forward with development, and you are more than welcome to share any idea with us!

Community

The word Casa comes from the Spanish word for "home". Project CasaOS originated as a pre-installed system for crowdfunded product ZimaBoard on Kickstarter.

After looking at many systems and software on the market, the team found no server system designed for home scenarios, sadly true.

So, we set out to build this open source project to develop CasaOS with our own hands, everyone in the community, and you.

A warm welcome for you to share and discuss your great ideas in the Discord server!

Discord Card

Getting Started

⚠️ Note:

CasaOS is still in the early development stage and may vary significantly with the final release. Feel free to test run and share your feedback in the Discord server!

System Compatibility

  • Ubuntu Server 20.04 amd64 ( Recommend, Tested)
  • Debian 11 amd64 ( ⚠️ Not Fully Tested Yet)
  • OpenWrt 21.02 amd64 ( ⚠️ Not Fully Tested Yet)
  • Raspberry Pi OS aarch64/arm64 ( 🚧 Under Planning)
  • OpenWrt 21.02 aarch64/arm64 ( 🚧 Under Planning)

Quick Setup CasaOS

Fresh install a system from the above list and run the below command:

curl -fsSL https://get.icewhale.io/casaos.sh | bash

To Do

v 0.1.x

  • An elegant UI for home scenarios
  • Custom installation of Docker Apps
  • Update, stop, uninstall, restart, etc. of Docker apps
  • Docker CLI parser
  • System Update
  • Getting Started tutorial
  • Docker Compose parser
  • App config file import and export
  • macvlan network mode

Maintainers

  • Jerry Liu
  • Link Liang
  • Ober Zhang
  • Zyaire Ann
  • John Guan
  • Right here, waiting for YOU!
Issues
  • RPI OS fails to boot

    RPI OS fails to boot

    Bug OS fails to boot because of a failed start job trying to mount the SSD where CasaOS is installed.

    Steps to reproduce the behaviour:

    1. Install CasaOS on a newly flashed Raspberry Pi OS Lite or Desktop on an external HDD/SSD.
    2. Do the basic setup of setting up a user.
    3. Do a reboot.
    4. See error "Timed out waiting for device /dev/disk/by-partuuid/<uuid_of_SSD/HDD>".

    Expected behavior A fresh OS image with just CasaOS should reboot just fine. I faced this issue with both Raspberry Pi OS Lite and Desktop. Also I tried flashing the OS on an SD card then installing CasaOS. But, as soon as you attach an external drive and reboot, it fails.

    Addtional ERROR Messages:

    [TIME] Timed out waiting for device /dev/disk/by-partuuid/<uuid_of_SSD/HDD>
    [DEPEND] Dependency failed for /boot.
    [DEPEND] Dependency failed for Local File Systems.
    [DEPEND] Dependency failed for File System Check on /dev/disk/by-partuuid/<uuid_of_SSD/HDD>
    

    System Information:

    • OS: Raspberry Pi OS Lite (32-bit)
    • Hardware: Raspberry Pi-4 4GB RAM
    • CasaOS Version: v0.2.3
    bug 
    opened by tanmay-pathak 11
  • Update and app store won't load.

    Update and app store won't load.

    Describe the bug It notes an update to v0.3.0 is available, however this never gets performed, even after running it all night. Aside of this the app store won't open either and all apps previously installed that weren't pre-installed have been removed. image image

    question 
    opened by Tijn4481 9
  • Unable to enter device-id in Sync Guide

    Unable to enter device-id in Sync Guide

    Describe the bug When entering device-id in sync your data section of casaos, the submit button is greyed out and non clickable

    To Reproduce Steps to reproduce the behavior: goto sync your data get device identification from synctrayzor xxxxxx-xxxxxx-xxxxxx-xxxxxx windows selected then next after entering device-id click on submit

    Desktop (please complete the following information): Raspberry Pi 3B - Casaos v0.2.4

    Desktop - Windows 10 Browser - Tried Chrome, Edge & Firefox - same on all

    bug 
    opened by brentgl 9
  • Containers stopped randomly after being imported to casaos

    Containers stopped randomly after being imported to casaos

    Hello In the new update v3.1.1 after importing a container (stack) that has been created outside the casaos, it will stop randomly without any reason. My only app that I have installed outside casaos and imported, is Ghostfolio which stops randomly and I cannot start it again unless I restart the whole system. P.S. before importing it to casaos it was working fine. Ghostfolio container stop working

    duplicate 
    opened by AuthorShin 8
  • Update Error CasaOS 0.21 to 0.22

    Update Error CasaOS 0.21 to 0.22

    Describe the bug A clear and concise description of what the bug is.

    To Reproduce Steps to reproduce the behavior:

    1. Go to 'settings'
    2. Click on 'Update'
    3. See error

    Expected behavior A clear and concise description of what you expected to happen. Update CasaOS. Screenshots If applicable, add screenshots to help explain your problem. Update bug load. update Log Error. casa os error update

    Desktop (please complete the following information):

    • OS: [Raspberry Pi OS lasts]
    • Browser [Brave lasts]
    • Version [CasaOS 0.21]

    Additional context Add any other context about the problem here.

    [ERROR][system.go:25]2021/12/04 01:20:03 [[[ INFO ] Downloading CasaOS for linux/armv7... [ INFO ] https://github.com/IceWhaleTech/CasaOS/releases/download/v0.2.2/linux-armv7-casaos.tar.gz Aborted, error 22 in command: ${net_getter} "$casa_url" > "$PREFIX/tmp/$casa_file"]]

    bug 
    opened by chicato83 8
  • Error response from daemon: network oasis not found

    Error response from daemon: network oasis not found

    Hello, when I try to "install" a container I get the following error: Error response from daemon: network oasis not found

    To Reproduce Steps to reproduce the behavior:

    1. Go to '+ App'
    2. Click on 'Install'
    3. See error

    Screenshots image

    Desktop:

    • OS: Ubuntu 20.04 - LTS 64bits
    • Browser Chrome
    • Version latest

    Additional context In case I installed docker with snap. I can't install it the normal way.

    opened by TOomaAh 8
  • BUG: Web SSH client doesn't allow login

    BUG: Web SSH client doesn't allow login

    I am not able to ssh in and login to the server using the web interface. I get the following error after my login and password.

    ssh: handshake failed: read tcp 127.0.0.1:26790->127.0.0.1:22: read: connection reset by peer

    The server host OS is Ubuntu 20.04.4 LTS and all the updates have been applied. Still getting the same error on v0.3.1.1 when I try and SSH in the server from the web interface.

    login:protektor password: ssh: handshake failed: read tcp 127.0.0.1:35742->127.0.0.1:22: read: connection reset by peer login:

    Can you do ssh -v and paste the verbose information here? No because it isn't a problem with the server or SSH daemon.

    I can use Putty from the same machine as running the web client and it works no problem. I am using Chrome Version 101.0.4951.67 (Official Build) (64-bit) on Windows. Firefox 100.0.2 (64-bit) is doing the same exact thing.

    The problem is not the SSH daemon, but the what ever the client is in the web interface. As I have said I have no problem getting to the server with other SSH clients, just not the web interface.

    bug question 
    opened by Protektor-Desura 7
  • After Update 3.1.1 CasaOS interface freezes

    After Update 3.1.1 CasaOS interface freezes

    Describe the bug After a certain amount of time the casaOS.local site no longer functions. External drive details dissapear and the ram and cpu no longer changes. The containers continue to function, however if you refresh the page they all dissapear except the file apps. It also stopped my expressvpn connection.

    To Reproduce Steps to reproduce the behavior:

    1. Update to 3.1.1
    2. go to casaOS.local
    3. wait for a few hours
    4. page no longer functions

    Expected behavior CasaOS landing page should function normally at all times.

    Desktop (please complete the following information):

    • OS: CasaOS
    • Browser Chrome
    • Version 3.1.1

    Additional context Worked perfectly up until the 3.1.0 and 3.1.1 update.

    bug 
    opened by JVTEAM 7
  • CasaOS is not an os

    CasaOS is not an os

    So I've seen this project posted around several times now. Discussion universally devolves into confusion about the name.

    Perhaps the project maintainers should review the name or lay out a roadmap to become a proper OS?

    opened by daniel-widrick 7
  • APP Store is not loading/open

    APP Store is not loading/open

    • OS: linux
    • CasaOS Version: 0.3.2.1
    • Disk Total: 73496
    • Disk Used: 6879
    • Sync State: Sync img: false Sync Key length: 0
    • System Info: [Ubuntu 22.04 LTS \l Bit:64 Mem:3520M Core:2 Linux serverhp 5.15.0-39-generic #42-Ubuntu SMP Thu Jun 9 23:42:32 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux]
    duplicate 
    opened by flokosx 6
  • App store doesn't open

    App store doesn't open

    Describe the bug

    When I click the app store button it just spins without opening. Occured after mounting network drive in Fstab. After removing the share the app store returned

    System infomation

     - OS: linux
     - CasaOS Version: 0.2.8
     - Disk Total: 13105 
     - Disk Used: 6996 
     - Sync State: Sync img: true
    linuxserver/syncthing,
    Sync Key length: 32
     - System Info: [Debian GNU/Linux 11   \l Bit:64 Mem:1826M Core:4 Linux CasaOS 5.10.0-11-amd64 #1 SMP Debian 5.10.92-1 (2022-01-18) x86_64 GNU/Linux]
     - Browser: Chrome 
     - Version: 97.0.4692.99
    
    bug 
    opened by JVTEAM 6
  • App logo is not loading when imported.

    App logo is not loading when imported.

    App logo is not loading when imported.

    This is the exported Json (OpenSpeedTest.json)

    {"custom_id":"7a8c2185-a2b8-4bbb-9493-07f41d7ac943","origin":"custom","network_model":"bridge","index":"","icon":"https://github.com/openspeedtest/Speed-Test/raw/main/images/icons/android-chrome-512x512.png","image":"openspeedtest/latest:latest","envs":[{"container":"PATH","host":"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","desc":"","type":0},{"container":"NGINX_VERSION","host":"1.22.0","desc":"","type":0},{"container":"NJS_VERSION","host":"0.7.4","desc":"","type":0},{"container":"PKG_RELEASE","host":"1","desc":"","type":0}],"ports":[{"container":"3000","host":"3000","protocol":"tcp","desc":"","type":0},{"container":"3001","host":"3001","protocol":"tcp","desc":"","type":0}],"volumes":[],"devices":[],"port_map":"3000","cpu_shares":90,"restart":"always","enable_upnp":false,"label":"OpenSpeedTest","description":"SpeedTest","position":false,"host_name":"OpenSpeedTest","privileged":false,"cap_add":[],"cmd":["nginx","-g","daemon off;"],"version":"1.0"}

    opened by openspeedtest 0
  • ssl error <- fix it please

    ssl error <- fix it please

    Describe the bug

    i set ssl cert at my server. so browser occur error beacusof protocol such as ) ws:// or http://

    and

    how i do set port 443 duplicately in apps setting i set reverse proxy using nginx such as ) http://192.168.0.2:9000 -> https://domain.domain/portainer/

    System infomation

     - OS: linux
     - CasaOS Version: 0.3.2.1
     - Disk Total: 46050 
     - Disk Used: 5984 
     - Sync State: Sync img: true
    linuxserver/syncthing:latest,
    Sync Key length: 32
     - System Info: [Ubuntu 22.04 LTS   \l Bit:64 Mem:965M Core:2 Linux instance-20220616-1048-434727 5.15.0-1003-oracle #5-Ubuntu SMP Wed Apr 20 04:50:08 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux]
     - Browser: Firefox 
     - Version: 101.0
    
    question 
    opened by silversaber 1
  • [Story] Being able to downgrade to a previous CasaOS release

    [Story] Being able to downgrade to a previous CasaOS release

    Summary

    This request is derived from the github discussion. Origins is a series of discussions brought about by recent product upgrade issues.

    Discussed in https://github.com/IceWhaleTech/CasaOS/discussions/289

    Originally posted by MitasTech June 14, 2022 I'm on version 3.1.1 and i have about 2.5TB of data on my server. I'm a bit afraid to update to the new update just in case something goes bad because it happened in the past. I really want to update to get the new features and by having this feature would make a lot of people feel safer when updating and also help anyone that actually face issues. This is just my opinion of course, but it would be great to have a feature that allows downgrading.

    PM notes

    Through the update panel, users can skip update notifications for the current version.

    1. Click Update
    2. Show the version log with two options, upgrade or skip this version
    3. If chosen "skip this version", remove the upgrade notification

    Through ssh, users can downgrade CasaOS to a specific version.

    1. Open terminal, login in CasaOS
    2. Find command from github readme file
    3. Enter the command, showing the whole process
    • script will detect if CasaOS is installed already
    • confirm to uninstall CasaOS (1. Remove CasaOS only. 2. Remove CasaOS and Docker Apps and AppData)
    • Reinstall CasaOS
    1. Successfully downgrade to a specific version of CasaOS

    Criteria

    • [ ] Criteria 1
    • [ ] Criteria 2
    • [ ] Criteria 3

    Dev Notes

    Depends on

    • [ ] Story 1
    • [ ] Story 2
    • [ ] Story 3

    QA Notes

    Checklist

    • [ ] item 1
    • [ ] item 2
    • [ ] item 3
    enhancement 
    opened by Lauren-ED209 0
  • Feature: Power usage widget

    Feature: Power usage widget

    Discussed in https://github.com/IceWhaleTech/CasaOS/discussions/207

    Originally posted by bearfrieze May 18, 2022

    Is your idea related to a problem? Please describe:

    Power usage is a great metric to have access to at a glance, but it's inconvenient to measure it with a physical/analog power meter.

    Describe the solution you'd like:

    Consume power metrics provided by the OS (e.g. metrics provided by Intel RAPL via the powercap driver) and display power usage in a polished graphical widget similar to the existing CPU/RAM widget. Current power usage would be a must have, and aggregated stats (1 hour average, 24 hour average, max power last 24 hours, etc.) would be a nice addition. See UI sketch below for more details.

    Describe alternatives you've considered:

    Using a physical/analog power meter to measure power usage is an alternative that I have tried out, but it's not as easy/convenient as measuring power usage from metrics provided by the OS.

    UI sketch:

    power_meter_ui_sketch

    POC:

    I did a POC for measuring power usage from the ZimaBoard 832 using metrics provided by the OS (Ubuntu Server 22.04).

    I have written this function (added to my .bashrc) to sample energy counter values provided by the kernel (which sources it from Intel RAPL) and do some math to determine wattage:

    power() {
      t=$1
      a=`cat /sys/class/powercap/intel-rapl/intel-rapl\:0/energy_uj`
      sleep $t
      b=`cat /sys/class/powercap/intel-rapl/intel-rapl\:0/energy_uj`
      python3 -c "print(f'{($b - $a) / 1000000 / $t:.2f} W')"
    }
    

    t is the offset between first and second sample. I have have seen accurate readings at 0.5 seconds sampling offset which is plenty of resolution for my purposes. You can of course run the script in a while true; do power 0.5; done loop and get continuous power readings.

    Sample output (idle --> full CPU load --> idle):

    [email protected]:~# while true; do power 0.5; done
    1.83 W
    1.83 W
    1.82 W
    9.00 W
    9.41 W
    9.44 W
    9.62 W
    9.79 W
    2.96 W
    1.83 W
    1.83 W
    1.83 W
    

    Based on my readings with a power meter, the metrics provided by the power function are accurate.

    More information on the powercap driver and Intel RAPL:

    • https://www.kernel.org/doc/html/latest/power/powercap/powercap.html
    • https://01.org/blogs/2014/running-average-power-limit-%E2%80%93-rapl

    Challenges:

    The power meter would never be compatible with all hardware/OS combinations, but could feasibly be implemented in a way that is compatible with several popular of hardware/OS combinations (e.g. ZimaBoard/Ubuntu Server).

    enhancement 
    opened by Lauren-ED209 0
  • darkmode support

    darkmode support

    Discussed in https://github.com/IceWhaleTech/CasaOS/discussions/248

    Originally posted by devrob20 June 2, 2022 for ppl with low vision darkmode is often a must-have , there is an official way to make html and css work with the darkmode setting of browsers and operating systems.

    please implement it. thanks.

    https://css-tricks.com/a-complete-guide-to-dark-mode-on-the-web/

    enhancement 
    opened by Lauren-ED209 1
  • Feature: Shutdown from Web GUI

    Feature: Shutdown from Web GUI

    Discussed in https://github.com/IceWhaleTech/CasaOS/discussions/253

    Originally posted by Peeeet June 6, 2022

    Is your idea related to a problem? Please describe:

    I don't see an obvious way to safely shutdown through CasaOS. Specifically when running on the ZimaBoard... the word "shutdown" is not mentioned anywhere and this, in fact, will be the first thing on this github that even contains the word "shutdown" 🧐

    Describe the solution you'd like:

    A button in the Web UI that shuts down the underlying system (in my case on a ZimaBoard).

    Describe alternatives you've considered:

    SSH is an option, but for such a rudimentary feature, I feel it should be as accessible as so many of the other more advanced features that are already present in the Web UI.

    ...Unless this system / the ZimaBoard are built to gracefully handle unexpected shutdowns (aka just pullin' the ol' plug) in which case that's an awesome feature and should be ~documented somewhere~ advertised proudly!

    Additional context

    Also this idea is even more pertinent considering the current bug 244 that prevents SSH login from the Web UI 😅

    enhancement 
    opened by Lauren-ED209 0
Releases(v0.3.2.1)
Owner
IceWhale
IceWhale
RoadRunner: an open-source high-performance PHP application server, load balancer, and process manager

RoadRunner is an open-source (MIT licensed) high-performance PHP application server, load balancer, and process manager. It supports running as a serv

Spiral Scout 0 Jan 13, 2022
An open-source, on-prem feature flag solution

An open-source, on-prem feature flag solution Documentation | Features | Values | Examples | Enterprise Flipt is an open source, on-prem feature flag

Mark Phelps 1.8k Jun 29, 2022
Flagr is an open source Go service that delivers the right experience to the right entity and monitors the impact.

Flagr is an open source Go service that delivers the right experience to the right entity and monitors the impact. It provides feature flags, experimentation (A/B testing), and dynamic configuration. It has clear swagger REST APIs for flags management and flag evaluation.

null 35 Jun 27, 2022
The Zuri Core is an open-source API that serves as the backend and backbone of Zuri Chat

The Zuri Core is an open-source API that serves as the backend and backbone of Zuri Chat

Zuri Chat 123 Jun 3, 2022
Go package for the BeagleBone open source hardware

go-beaglebone Go package for the BeagleBone open source hardware Also check out https://github.com/SpaceLeap/go-embedded This package builds on top of

Space Leap 15 Jul 6, 2019
a simple http server as replacement of python -m http.server

ser a simple http server as replacement of python -m http.server

Changkun Ou 4 Feb 16, 2022
A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. 🎛️

??️ go-feature-flag A feature flag solution, with YAML file in the backend (S3, GitHub, HTTP, local file ...). No server to install, just add a file i

Thomas Poignant 447 Jun 29, 2022
ready-to-use RTSP / RTMP server and proxy that allows to read, publish and proxy video and audio streams

rtsp-simple-server is a simple, ready-to-use and zero-dependency RTSP / RTMP server and proxy, a software that allows users to publish, read and proxy live video and audio streams. RTSP is a specification that describes how to perform these operations with the help of a server, that is contacted by both publishers and readers and relays the publisher's streams to the readers.

Alessandro Ros 3.3k Jun 29, 2022
A simple http-web server logging incoming requests to stdout with simple http-interface.

http-cli-echo-logger A simple http-web server logging incoming requests to stdout with simple http-interface. Run locally go run ./cmd/main.go Default

Andrii Bosonchenko 4 Jun 7, 2022
Simple webhook delivery system powered by Golang and PostgreSQL

postmand Simple webhook delivery system powered by Golang and PostgreSQL. Features Simple rest api with only three endpoints (webhooks/deliveries/deli

Allisson Azevedo 18 Jul 1, 2022
OpenAPI specs for your Go server, generated at server runtime. No CLI, no code generation, and no HTTP

Overview "oas" is short for "OpenAPI Spec". Go package for generating OpenAPI docs at runtime. Non-features: No code generation. No CLI. No magic comm

Nelo Mitranim 0 Dec 3, 2021
A Language Server Protocol (LSP) server for Jsonnet

Jsonnet Language Server A Language Server Protocol (LSP) server for Jsonnet. Features Jump to definition self-support.mp4 dollar-support.mp4 Error/War

Grafana Labs 56 Jun 24, 2022
Go web server - A web server that can accept a GET request and serve a response.

go_web_server A web server that can accept a GET request and serve a response. Go is a great language for creating simple yet efficient web servers an

Gilbert Ngeno 0 Jan 3, 2022
Open platform to collect and prioritize product feedback

Fider A platform to collect and organize customer feedback. Let your customers share, vote and discuss on suggestions they have to make your product e

getfider 2k Jun 25, 2022
A simple SHOUTcast server.

DudelDu DudelDu is a simple audio/video streaming server using the SHOUTcast protocol. Features Supports various streaming clients: VLC, ServeStream,

Matthias Ladkau 136 Apr 20, 2022
Heart 💜A high performance Lua web server with a simple, powerful API

Heart ?? A high performance Lua web server with a simple, powerful API. See the full documentation here. Overview Heart combines Go's fasthttp with Lu

Hyperspace Logistics 75 Jun 22, 2022
KissLists is a very simple shared lists server

KissLists is a very simple shared lists server. with mobile optimised design basic theme support websockets messages sqlite database but no

Vincent Lark 37 Feb 18, 2022
A simple HTTP Server to share files over WiFi via Qr Code

go-fileserver A simple HTTP server to share files over WiFi via QRCode Installation You can download compressed version from

Pradeep Khileri 69 May 30, 2022
Oogway is a simple web server with dynamic content generation and extendability in mind supporting a Git based workflow.

Oogway Oogway is a simple web server with dynamic content generation and extendability in mind supporting a Git based workflow. It's somewhere in betw

Emvi 5 Mar 9, 2022