A web interface for managing docker containers with an emphasis on templating to provide 1 click deployments. Think of it like a decentralized app store for servers that anyone can make packages for.

Overview

logo

Docker Hub Pulls Docker Image Size Layers Open Collective

Yacht

Yacht is a container management UI with a focus on templates and 1-click deployments.

If the built in update button isn't working for you try the following command:

docker run --rm -d -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower:latest --cleanup --run-once <container-name>

Demo:

Tempaltes

Installation:

Currently only linux has been verified as working but we are open to the idea of supporting windows eventually as well.

Keep in mind, this is an alpha so the risk of data loss is real and it may not be stable

Installation documentation can be found here.

Check out the getting started guide if this is the first time you've used Yacht: https://yacht.sh/docs/Installation/Getting_Started

Yacht is also available via the DigitalOcean marketplace:

DigitalOcean

Features So Far:

  • Vuetify UI Framework
  • Basic Container Management
  • Template Framework
  • Easy Template Updating
  • Centralized settings for volume management and similar QOL functionality.
  • Docker-Compose Compatibility
  • Advanced Container Management (Edit/Modify)

Planned Features:

  • Container Monitoring
  • Easy access to container interfaces
  • User Management
  • Scheduled Jobs

If you want something that's not planned please open a feature request issue and we'll see about getting it added.

Templating:

Currently Yacht is compatible with portainer templates. You'll add a template url in the "Add Template" settings. The the template will be read, separated into apps, and imported into the database. The apps associated with the templates are linked via a db relationship so when the template is removed, so are the apps associated with it. We store the template url as well so we can enable updating templates with a button press.

We recommend starting with:

https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/yacht/Template/template.json

In templates you are able to define variables (starting with !) to have them automatically replaced by whatever variable the user has set in their server settings (ie. !config will be replaced by /yacht/AppData/Config by default).

Notes for ARM devices

If you're on arm and graphs aren't showing up add the following to your cmdline.txt:

cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1

Supported Environment Variables

You can utilize the following environment variables in Yacht. None of them are manditory.

Variable Description
PUID Set userid that the container will run as.
PGID Set groupid that the container will run as.
SECRET_KEY Setting this to a random string ensures you won't be logged out in between reboots of Yacht.
ADMIN_EMAIL This sets the email for the default Yacht user.
DISABLE_AUTH This disables authentication on the backend of Yacht. It's not recommended unless you're using something like Authelia to manage authentication.
DATABASE_URL If you want to have Yacht use a database like SQL instead of the built in sqlite on you can put that info here in the following format: postgresql://user:[email protected]/db
COMPOSE_DIR This is the path inside the container which contains your folders that have docker compose projects. (compose tag only)

License

MIT License

Issues
  • docker stats reported as null for ARM

    docker stats reported as null for ARM

    Got an error on my raspberry pi. There is not stats, and container log's contain

    ERROR:    Exception in ASGI application". 
    Error Logs:
    RuntimeError: aclose(): asynchronous generator is already running
    ERROR:    Exception in ASGI application
    Traceback (most recent call last):
      File "/usr/lib/python3.8/site-packages/uvicorn/protocols/websockets/websockets_impl.py", line 154, in run_asgi
        result = await self.app(self.scope, self.asgi_receive, self.asgi_send)
      File "/usr/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in __call__
        return await self.app(scope, receive, send)
      File "/usr/lib/python3.8/site-packages/fastapi/applications.py", line 180, in __call__
        await super().__call__(scope, receive, send)
      File "/usr/lib/python3.8/site-packages/starlette/applications.py", line 111, in __call__
        await self.middleware_stack(scope, receive, send)
      File "/usr/lib/python3.8/site-packages/starlette/middleware/errors.py", line 146, in __call__
        await self.app(scope, receive, send)
      File "/usr/lib/python3.8/site-packages/starlette/exceptions.py", line 58, in __call__
        await self.app(scope, receive, send)
      File "/usr/lib/python3.8/site-packages/starlette/routing.py", line 566, in __call__
        await route.handle(scope, receive, send)
      File "/usr/lib/python3.8/site-packages/starlette/routing.py", line 283, in handle
        await self.app(scope, receive, send)
      File "/usr/lib/python3.8/site-packages/starlette/routing.py", line 57, in app
        await func(session)
      File "/usr/lib/python3.8/site-packages/fastapi/routing.py", line 242, in app
        await dependant.call(**values)
      File "./api/routers/apps.py", line 145, in dashboard
        await asyncio.gather(*tasks)
      File "./api/routers/apps.py", line 154, in process_container
        mem_current = line["memory_stats"]["usage"]
    KeyError: 'usage'
    
    bug backend 
    opened by izestrea 19
  • Projects have been deleted server throwing error

    Projects have been deleted server throwing error

    Describe the bug Projects had been created to run docker stacks. The projects tab on the home page responds with the following error:

    Internal Server Error: undefined

    Expected behavior Projects that have been built are available.

    Screenshots If applicable, add screenshots to help explain your problem.

    Desktop (please complete the following information):

    • OS: Windows
    • Browser Firefox
    • Yacht Version: v0.0.6-alpha-2021-02-25--15

    Additional context Add any other context about the problem here.

    ** Logs ** yacht View and Manage yacht Logs INFO: - "GET /api/apps/Deemix/processes HTTP/1.1" 200 OK

    INFO: - "GET /api/apps/Deemix/processes HTTP/1.1" 200 OK

    INFO: None - "WebSocket /api/apps/Deemix/livelogs" [accepted]

    INFO: None - "WebSocket /api/apps/Deemix/stats" [accepted]

    INFO: - "GET /api/apps/ HTTP/1.1" 200 OK

    INFO: - "GET /api/compose/ HTTP/1.1" 500 Internal Server Error

    ERROR: Exception in ASGI application

    Traceback (most recent call last):

    File "/usr/lib/python3.8/site-packages/uvicorn/protocols/http/httptools_impl.py", line 390, in run_asgi

     result = await app(self.scope, self.receive, self.send)
    

    File "/usr/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 45, in call

     return await self.app(scope, receive, send)
    

    File "/usr/lib/python3.8/site-packages/fastapi/applications.py", line 199, in call

     await super().__call__(scope, receive, send)
    

    File "/usr/lib/python3.8/site-packages/starlette/applications.py", line 111, in call

     await self.middleware_stack(scope, receive, send)
    

    File "/usr/lib/python3.8/site-packages/starlette/middleware/errors.py", line 181, in call

     raise exc from None
    

    File "/usr/lib/python3.8/site-packages/starlette/middleware/errors.py", line 159, in call

     await self.app(scope, receive, _send)
    

    File "/usr/lib/python3.8/site-packages/starlette/exceptions.py", line 82, in call

     raise exc from None
    

    File "/usr/lib/python3.8/site-packages/starlette/exceptions.py", line 71, in call

     await self.app(scope, receive, sender)
    

    File "/usr/lib/python3.8/site-packages/starlette/routing.py", line 566, in call

     await route.handle(scope, receive, send)
    

    File "/usr/lib/python3.8/site-packages/starlette/routing.py", line 227, in handle

     await self.app(scope, receive, send)
    

    File "/usr/lib/python3.8/site-packages/starlette/routing.py", line 41, in app

     response = await func(request)
    

    File "/usr/lib/python3.8/site-packages/fastapi/routing.py", line 201, in app

     raw_response = await run_endpoint_function(
    

    File "/usr/lib/python3.8/site-packages/fastapi/routing.py", line 150, in run_endpoint_function

     return await run_in_threadpool(dependant.call, **values)
    

    File "/usr/lib/python3.8/site-packages/starlette/concurrency.py", line 34, in run_in_threadpool

     return await loop.run_in_executor(None, func, *args)
    

    File "/usr/lib/python3.8/concurrent/futures/thread.py", line 57, in run

     result = self.fn(*self.args, **self.kwargs)
    

    File "./api/routers/compose.py", line 22, in get_projects

     return get_compose_projects()
    

    File "./api/actions/compose.py", line 191, in get_compose_projects

     if loaded_compose.get("volumes"):
    

    AttributeError: 'str' object has no attribute 'get'

    INFO: - "GET /api/apps/ HTTP/1.1" 200 OK

    INFO: - "GET /api/apps/yacht HTTP/1.1" 200 OK

    INFO: - "GET /api/apps/yacht/processes HTTP/1.1" 200 OK

    INFO: - "GET /api/apps/yacht HTTP/1.1" 200 OK

    INFO: - "GET /api/apps/yacht/processes HTTP/1.1" 200 OK

    INFO: None - "WebSocket /api/apps/yacht/livelogs" [accepted]

    INFO: None - "WebSocket /api/apps/yacht/stats" [accepted]

    bug 
    opened by rrw357719 14
  • [Bug Report] Logs overlap making them unreadable

    [Bug Report] Logs overlap making them unreadable

    Container Logs in Yacht web interface seem to overlap making them unreadable. I am using the latest docker container for Yacht as of today. If I highlight the text, I can make out the highlighted test.

    I tired a Chromebook, Chrome on Windows and Edge on Windows.

    bug 
    opened by jeffr1975 12
  • No Projects Displaying After Incorrectly Formatter File Saved

    No Projects Displaying After Incorrectly Formatter File Saved

    When creating a new project I created a file that had everything under the initial version declaration indented too far. The file saved but caused the "Internal Server Error: undefined" and would no longer display any existing projects. I removed the indent and everything went back to normal.

    File Causing Issue: image

    Corrected File: image

    opened by bm751613 12
  • [Bug Report] Blank page when loading projects using a .env file

    [Bug Report] Blank page when loading projects using a .env file

    1. Create a project in which the docker-compose.yml has a reference on a .env file
    2. Create the .env file on the filesystem

    Expected behavior Project gets shown like any other one.

    Screenshots image

    Desktop (please complete the following information):

    • OS: Windows
    • Browser Edge
    • Yacht Version: newest docker image

    ** Logs **

    vue.runtime.esm.js:1888 TypeError: t.project.services[e].env_file.join is not a function
        at ProjectDetails.vue?66a1:33
        at a.Bt [as _l] (vue.runtime.esm.js:2630)
        at a.Wa (ProjectDetails.vue?66a1:5)
        at a._render (vue.runtime.esm.js:3548)
        at a.i (vue.runtime.esm.js:4066)
        at ni.get (vue.runtime.esm.js:4479)
        at ni.run (vue.runtime.esm.js:4554)
        at Jn (vue.runtime.esm.js:4310)
        at Array.<anonymous> (vue.runtime.esm.js:1980)
        at ct (vue.runtime.esm.js:1906)
    
    TypeError: t.project.services[e].env_file.join is not a function
        at ProjectDetails.vue?66a1:33
        at a.Bt [as _l] (vue.runtime.esm.js:2630)
        at a.Wa (ProjectDetails.vue?66a1:5)
        at a._render (vue.runtime.esm.js:3548)
        at a.i (vue.runtime.esm.js:4066)
        at ni.get (vue.runtime.esm.js:4479)
        at ni.run (vue.runtime.esm.js:4554)
        at Jn (vue.runtime.esm.js:4310)
        at Array.<anonymous> (vue.runtime.esm.js:1980)
        at ct (vue.runtime.esm.js:1906)
    
    bug 
    opened by TheAnachronism 11
  • High cpu-usage when accessing trough Safari on MacOS Catalina

    High cpu-usage when accessing trough Safari on MacOS Catalina

    When accessing the webpage trough MacOS Catalina on my Macbook, the cpu usage is above 100% and the webpage freezes. With Firefox running on the same machine there's no problem and everything works fine and smooth.

    Nice project btw ๐Ÿ‘

    kr., Frepke

    opened by frepke 11
  • Yacht is changing permissions of compose folder

    Yacht is changing permissions of compose folder

    Hi,

    i just tested the new version with the compose editing and for this i have mounted my compose folder into yacht and then all my file permissions have been overwritten by yacht to 911 as owner.

    I'm not sure why this is done by yacht but its going to cause problems when you have config folders inside. So yacht should really do NOT change permissions and ownerships of mounted folders without any reason.

    Maybe the reason for the permission change is because compose is mounted per default under /config/compose?

    Thanks

    opened by eloo 10
  • Unable to load UI

    Unable to load UI

    docker run -d -p 8000:8000 -v /var/run/docker.sock:/var/run/docker.sock -v yacht:/config selfhostedpro/yacht
    

    Above commands gives empty page.

    Looking at browser console, found some errors.

    Screenshot from 2020-11-16 20-16-37

    opened by hibare 10
  • [Bug Report] Not all apps are showing up in dashboards

    [Bug Report] Not all apps are showing up in dashboards

    Some users are limited to 6 containers showing in the dashboard. At this point I'm thinking it could be related to http2 support with the current nginx config but that would even be limited to 10 from what I've read on browser compatibility.

    No logs indicate an issue, the requests just time out.

    bug frontend backend 
    opened by SelfhostedPro 9
  • [Feature Request] Adjust Dashboard View to Improve Performance Impact

    [Feature Request] Adjust Dashboard View to Improve Performance Impact

    I personally cannot load the dashboard page, as I have enough containers that it causes a lock up.

    Potentially paginating this page or optionally loading the CPU performance graphs via a dropdown would improve this.

    opened by ZachMyers3 8
  • [Snyk] Security upgrade axios from 0.21.1 to 0.21.3

    [Snyk] Security upgrade axios from 0.21.1 to 0.21.3

    Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

    merge advice

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • frontend/package.json
      • frontend/package-lock.json

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:------------------------- high severity | 768/1000
    Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 7.5 | Regular Expression Denial of Service (ReDoS)
    SNYK-JS-AXIOS-1579269 | No | Proof of Concept

    (*) Note that the real score may have changed since the PR was raised.

    Commit messages
    Package name: axios The new version differs by 41 commits.
    • e367be5 [Releasing] 0.21.3
    • 83ae383 Correctly add response interceptors to interceptor chain (#4013)
    • c0c8761 [Updating] changelog to include links to issues and contributors
    • 619bb46 [Releasing] v0.21.2
    • 82c9455 Create SECURITY.md (#3981)
    • 5b45711 Security fix for ReDoS (#3980)
    • 5bc9ea2 Update ECOSYSTEM.md (#3817)
    • e72813a Fixing README.md (#3818)
    • e10a027 Fix README typo under Request Config (#3825)
    • e091491 Update README.md (#3936)
    • b42fbad Removed un-needed bracket
    • 520c8dc Updating CI status badge (#3953)
    • 4fbeecb Adding CI on Github Actions. (#3938)
    • e9965bf Fixing the sauce labs tests (#3813)
    • dbc634c Remove charset in tests (#3807)
    • 3958e9f Add explanation of cancel token (#3803)
    • 69949a6 Adding custom return type support to interceptor (#3783)
    • 49509f6 Create FUNDING.yml (#3796)
    • 199c8aa Adding parseInt to config.timeout (#3781)
    • 94fc4ea Adding isAxiosError typeguard documentation (#3767)
    • 0ece97c Fixing quadratic runtime when setting a maxContentLength (#3738)
    • a18a0ec Updating `lib/core/README.md` about Dispatching requests (#3772)
    • 59fa614 [Updated] follow-redirects to the latest version (#3771)
    • 7821ed2 Feat/json improvements (#3763)

    See the full diff

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic

    opened by snyk-bot 0
  • [Feature Request] Able to set a Static IP address on a macvlan bridge

    [Feature Request] Able to set a Static IP address on a macvlan bridge

    Is your feature request related to a problem? Please describe. just a option to input a static IP address when I select a macvlan bridge.

    Describe the solution you'd like able to put a static ip address

    Describe alternatives you've considered basically none for yacht, I can only way to apply static IP address is done directly on terminal.

    Additional context none

    enhancement frontend backend 
    opened by remlei 0
  • [Bug Report] After upgrade, cannot login

    [Bug Report] After upgrade, cannot login

    Describe the bug After upgrade, I re-create the docker container, and I'm unable to login.

    To Reproduce Steps to reproduce the behavior: Not completely sure what version I was on previously, but I can no longer login upon upgrading to image selfhostedpro\yacht:latest (sha256:28505b2e5caefdf27d98e6b569f9ac63bca214defb263ede3c1e15431664acee)

    Expected behavior I should be able to login using the same username & password.

    Desktop (please complete the following information):

    • OS: Windows 10
    • Browser: Brave Version 1.26.74 Chromium: 91.0.4472.124 (Official Build) (64-bit)
    • Yacht Version: Not sure...can't login :)

    Additional context Add any other context about the problem here.

    ** Logs **

    Starting yacht ... done
    Attaching to yacht
    yacht    | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
    yacht    | [s6-init] ensuring user provided files have correct perms...exited 0.
    yacht    | [fix-attrs.d] applying ownership & permissions fixes...
    yacht    | [fix-attrs.d] done.
    yacht    | [cont-init.d] executing container initialization scripts...
    yacht    | [cont-init.d] 01-envfile: executing...
    yacht    | [cont-init.d] 01-envfile: exited 0.
    yacht    | [cont-init.d] 10-adduser: executing...
    yacht    | usermod: no changes
    yacht    |
    yacht    | -------------------------------------
    yacht    |           _         ()
    yacht    |          | |  ___   _    __
    yacht    |          | | / __| | |  /  \
    yacht    |          | | \__ \ | | | () |
    yacht    |          |_| |___/ |_|  \__/
    yacht    |
    yacht    |
    yacht    | Brought to you by linuxserver.io
    yacht    | -------------------------------------
    yacht    |
    yacht    | To support LSIO projects visit:
    yacht    | https://www.linuxserver.io/donate/
    yacht    | -------------------------------------
    yacht    | GID/UID
    yacht    | -------------------------------------
    yacht    |
    yacht    | User uid:    911
    yacht    | User gid:    911
    yacht    | -------------------------------------
    yacht    |
    yacht    | [cont-init.d] 10-adduser: exited 0.
    yacht    | [cont-init.d] 30-config: executing...
    yacht    | [cont-init.d] 30-config: exited 0.
    yacht    | [cont-init.d] 31-migrate: executing...
    yacht    | INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
    yacht    | INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
    yacht    | --- MODELS ---
    yacht    | FAILED: Target database is not up to date.
    yacht    | ERROR [alembic.util.messaging] Target database is not up to date.
    yacht    | INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
    yacht    | INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
    yacht    | INFO  [alembic.runtime.migration] Running upgrade  -> 9e089dbd3a44, automated db upgrade
    yacht    | --- MODELS ---
    yacht    | Traceback (most recent call last):
    yacht    |   File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    yacht    |     self.dialect.do_execute(
    yacht    |   File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    yacht    |     cursor.execute(statement, parameters)
    yacht    | sqlite3.OperationalError: table template_variables already exists
    yacht    |
    yacht    | The above exception was the direct cause of the following exception:
    yacht    |
    yacht    | Traceback (most recent call last):
    yacht    |   File "/usr/bin/alembic", line 8, in <module>
    yacht    |     sys.exit(main())
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/config.py", line 581, in main
    yacht    |     CommandLine(prog=prog).main(argv=argv)
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/config.py", line 575, in main
    yacht    |     self.run_cmd(cfg, options)
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/config.py", line 552, in run_cmd
    yacht    |     fn(
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/command.py", line 298, in upgrade
    yacht    |     script.run_env()
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/script/base.py", line 489, in run_env
    yacht    |     util.load_python_file(self.dir, "env.py")
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/util/pyfiles.py", line 98, in load_python_file
    yacht    |     module = load_module_py(module_id, path)
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/util/compat.py", line 184, in load_module_py
    yacht    |     spec.loader.exec_module(module)
    yacht    |   File "<frozen importlib._bootstrap_external>", line 848, in exec_module
    yacht    |   File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
    yacht    |   File "/alembic/env.py", line 93, in <module>
    yacht    |     run_migrations_online()
    yacht    |   File "/alembic/env.py", line 87, in run_migrations_online
    yacht    |     context.run_migrations()
    yacht    |   File "<string>", line 8, in run_migrations
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/runtime/environment.py", line 846, in run_migrations
    yacht    |     self.get_context().run_migrations(**kw)
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/runtime/migration.py", line 522, in run_migrations
    yacht    |     step.migration_fn(**kw)
    yacht    |   File "/alembic/versions/9e089dbd3a44_automated_db_upgrade.py", line 21, in upgrade
    yacht    |     op.create_table('template_variables',
    yacht    |   File "<string>", line 8, in create_table
    yacht    |   File "<string>", line 3, in create_table
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/operations/ops.py", line 1252, in create_table
    yacht    |     return operations.invoke(op)
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/operations/base.py", line 373, in invoke
    yacht    |     return fn(self, operation)
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/operations/toimpl.py", line 101, in create_table
    yacht    |     operations.impl.create_table(table)
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/ddl/impl.py", line 259, in create_table
    yacht    |     self._exec(schema.CreateTable(table))
    yacht    |   File "/usr/lib/python3.8/site-packages/alembic/ddl/impl.py", line 141, in _exec
    yacht    |     return conn.execute(construct, *multiparams, **params)
    yacht    |   File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
    yacht    |     return meth(self, multiparams, params)
    yacht    |   File "/usr/lib/python3.8/site-packages/sqlalchemy/sql/ddl.py", line 72, in _execute_on_connection
    yacht    |     return connection._execute_ddl(self, multiparams, params)
    yacht    |   File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1068, in _execute_ddl
    yacht    |     ret = self._execute_context(
    yacht    |   File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
    yacht    |     self._handle_dbapi_exception(
    yacht    |   File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1510, in _handle_dbapi_exception
    yacht    |     util.raise_(
    yacht    |   File "/usr/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
    yacht    |     raise exception
    yacht    |   File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
    yacht    |     self.dialect.do_execute(
    yacht    |   File "/usr/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 593, in do_execute
    yacht    |     cursor.execute(statement, parameters)
    yacht    | sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) table template_variables already exists
    yacht    | [SQL:
    yacht    | CREATE TABLE template_variables (
    yacht    |      id INTEGER NOT NULL,
    yacht    |      variable VARCHAR(255) NOT NULL,
    yacht    |      replacement VARCHAR(255) NOT NULL,
    yacht    |      PRIMARY KEY (id)
    yacht    | )
    yacht    |
    yacht    | ]
    yacht    | (Background on this error at: http://sqlalche.me/e/13/e3q8)
    yacht    | [cont-init.d] 31-migrate: exited 1.
    yacht    | [cont-init.d] 32-env: executing...
    yacht    | Replacing env constants in JS
    yacht    | Processing /app/js/app.1d365aa7.js ...
    yacht    | Processing /app/js/app.1d365aa7.js.map ...
    yacht    | Processing /app/index.html ...
    yacht    | [cont-init.d] 32-env: exited 0.
    yacht    | [cont-init.d] 99-custom-files: executing...
    yacht    | [custom-init] no custom files found exiting...
    yacht    | [cont-init.d] 99-custom-files: exited 0.
    yacht    | [cont-init.d] done.
    yacht    | [services.d] starting services
    yacht    | [services.d] done.
    yacht    | INFO:     Started server process [310]
    yacht    | INFO:     Waiting for application startup.
    yacht    | INFO:     Application startup complete.
    yacht    | INFO:     Uvicorn running on unix socket /tmp/gunicorn.sock (Press CTRL+C to quit)
    ^CGracefully stopping... (press Ctrl+C again to force)
    Stopping yacht ... done
    
    bug 
    opened by SteveDinn 1
  • [Snyk] Security upgrade urllib3 from 1.25.10 to 1.26.5

    [Snyk] Security upgrade urllib3 from 1.25.10 to 1.26.5

    Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • backend/requirements.txt
    โš ๏ธ Warning
    requests 2.24.0 has requirement urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1, but you have urllib3 1.26.5.
    python-jose 3.2.0 requires rsa, which is not installed.
    
    

    Vulnerabilities that will be fixed

    By pinning:

    Severity | Priority Score (*) | Issue | Upgrade | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 479/1000
    Why? Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS)
    SNYK-PYTHON-URLLIB3-1533435 | urllib3:
    1.25.10 -> 1.26.5
    | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the effected dependencies could be upgraded.

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: ๐Ÿง View latest project report

    ๐Ÿ›  Adjust project settings

    ๐Ÿ“š Read more about Snyk's upgrade and patch logic

    opened by snyk-bot 0
  • [Bug Report] Incorrect CPU usage shown

    [Bug Report] Incorrect CPU usage shown

    Describe the bug

    Yacht shows incorrect CPU usage:

    image

    Portainer:

    image
    # compose.yml
    version: "3.8"
    services:
      yacht:
        container_name: yacht
        image: selfhostedpro/yacht:devel
        restart: unless-stopped
        environment:
          - PUID=1001
          - PGID=1001
          - SECRET_KEY=key
          - DISABLE_AUTH=True
        volumes:
          - /opt/appdata/yacht:/config
          - /var/run/docker.sock:/var/run/docker.sock
          - /etc/localtime:/etc/localtime:ro
    

    Expected behavior

    Yacht would show the correct CPU usage

    Environment

    • OS: Ubuntu 20.04 arm64
    • Browser: Safari, MobileSafari
    • Yacht Version: devel-2021-06-25--13

    Additional context

    ** Logs **

    bug 
    opened by agneevX 1
  • [Bug Report] UI issues when using Chromium based browser (Microsoft Edge)

    [Bug Report] UI issues when using Chromium based browser (Microsoft Edge)

    Describe the bug The UI basically stops working. For example viewing logs will result blank, going to Settings >> Templates shows empty settings (as if there's no templates where set) last but not the least, deploying new containers will basically do nothing. Templates section is also empty.

    To Reproduce This issue sometimes pops-up on its own without doing anything special (deploying containers, viewing the containers status etc...) but the most reliable one to trigger is this:

    1. Go to 'Setting'
    2. Click on 'Update Tab'
    3. There some sort of progress bar animation going from left to right, this will not end.
    4. Now you can browse any part that I mention before.

    Screenshots Web capture_13-7-2021_81531_192 168 254 2 Web capture_13-7-2021_8150_192 168 254 2 Web capture_13-7-2021_81356_192 168 254 2 Web capture_13-7-2021_81331_192 168 254 2

    Desktop (please complete the following information):

    • OS: Windows 10 / Ubuntu 21.02
    • Browser: MS Edge/Brave
    • Yacht Version v0.0.7-alpha-2021-05-31--16
    bug 
    opened by remlei 3
  • [Snyk] Upgrade vee-validate from 3.4.8 to 3.4.9

    [Snyk] Upgrade vee-validate from 3.4.8 to 3.4.9

    Snyk has created this PR to upgrade vee-validate from 3.4.8 to 3.4.9.

    merge advice :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 21 days ago, on 2021-06-05.

    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    ๐Ÿง View latest project report

    ๐Ÿ›  Adjust upgrade PR settings

    ๐Ÿ”• Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 0
  • [Snyk] Upgrade vue from 2.6.12 to 2.6.13

    [Snyk] Upgrade vue from 2.6.12 to 2.6.13

    Snyk has created this PR to upgrade vue from 2.6.12 to 2.6.13.

    merge advice :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


    • The recommended version is 1 version ahead of your current version.
    • The recommended version was released 21 days ago, on 2021-06-01.
    Release notes
    Package name: vue from vue GitHub release notes
    Commit messages
    Package name: vue
    • 1866033 build: release 2.6.13
    • f34f6bb build: build 2.6.13
    • f038000 refactor: check is function for fallback slots
    • d6ac00f chore: display more oc sponsors on readme [ci skip]
    • 0ff1356 chore: fix typo in README.md [ci skip] (#12064)
    • f2a6a1b chore: update sponsors [ci skip] (#12054)
    • df4e385 chore: fix opencollective silver sponsors in backers.md [ci skip]
    • bb9190b build(deps): bump ssri from 6.0.1 to 6.0.2 (#12047)
    • e7cf063 chore: update sponsors [ci skip] (#12021)
    • e7baaa1 fix(keep-alive): cache what is really needed not the whole VNode data (#12015)
    • 2b93e86 fix(types): make $refs undefined possible (#11112)
    • 5260830 fix(core): fix sameVnode for async component (#11107)
    • e4dea59 fix(errorHandler): async error handling for watchers (#9484)
    • 3ad60fe feat(warn): warn computed conflict with methods (#10119)
    • c6d7a6f fix(v-on): avoid events with empty keyCode (autocomplete) (#11326)
    • ce457f9 fix(slot): add a function to return the slot fallback content (#12014)
    • 77b5330 fix: force update between two components with and without slot (#11795)
    • af54514 fix: handle async placeholders in normalizeScopedSlot (#11963)
    • 0603ff6 fix(warns): modify `maybeComponent` function in parser (#10167)
    • 5c459f0 fix(types): allow symbol & boolean for vnode key (#11914)
    • 6ec33f7 chore: update backers [ci skip] (#12004)
    • 0d223a3 chore: update sponsors [ci skip] (#11997)
    • cc807d2 chore: update backers [ci skip] (#11996)
    • d90ce76 build(deps): bump y18n from 4.0.0 to 4.0.1 (#11987)

    Compare


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

    For more information:

    ๐Ÿง View latest project report

    ๐Ÿ›  Adjust upgrade PR settings

    ๐Ÿ”• Ignore this dependency or unsubscribe from future upgrade PRs

    opened by snyk-bot 0
  • [Feature Request] Title

    [Feature Request] Title

    Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

    Currently, environment variables passed to Yacht on its creation are not passed to the containers managed by Yacht. This is unfortunate because I would like to pass some environment variables from the host to Yacht and then forward them to the containers. Most notably, I want to pass the ssh-agent from the host machine to the running containers through the $SSH_AUTH_SOCK variable set by the host.

    Ssh-agent is necessary to be able to easily update my gits from inside the containers themselves.

    Describe the solution you'd like A clear and concise description of what you want to happen.

    As I understand it by reading the code, this is because all environment variables are cleaned and they are not passed to the docker-compose on creation time. From my understanding, this could be relatively easily changed to pass through all available variables downwards by default instead of cleaning the environment.

    Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

    Otherwise, I will need to manually pass the content of the variable in each container, and monitor if the contents of the variable changed to then manually update them in each docker-compose.

    Additional context Add any other context or screenshots about the feature request here.

    enhancement 
    opened by nikosgpet 2
  • Bump websockets from 8.1 to 9.1 in /backend

    Bump websockets from 8.1 to 9.1 in /backend

    Bumps websockets from 8.1 to 9.1.

    Changelog

    Sourced from websockets's changelog.

    9.1 ...

    May 27, 2021

    .. note::

    **Version 9.1 fixes a security issue introduced in version 8.0.**
    

    Version 8.0 was vulnerable to timing attacks on HTTP Basic Auth passwords.

    9.0.2 .....

    May 15, 2021

    • Restored compatibility of python -m websockets with Python < 3.9.

    • Restored compatibility with mypy.

    9.0.1 .....

    May 2, 2021

    • Fixed issues with the packaging of the 9.0 release.

    9.0 ...

    May 1, 2021

    .. note::

    **Version 9.0 moves or deprecates several APIs.**
    

    Aliases provide backwards compatibility for all previously public APIs.

    • :class:~datastructures.Headers and :exc:~datastructures.MultipleValuesError were moved from websockets.http to :mod:websockets.datastructures. If you're using them, you should adjust the import path.

    • The client, server, protocol, and auth modules were moved from the websockets package to websockets.legacy sub-package, as part of an upcoming refactoring. Despite the name, they're still fully supported. The refactoring should be a transparent upgrade for most uses when it's available. The legacy implementation will be preserved according to the backwards-compatibility policy_.

... (truncated)

Commits
  • d0f3288 Bump version number.
  • 547a26b Use constant-time comparison for passwords.
  • a14226a Bump version number.
  • 8900c13 Add mypy to dictionary.
  • 0713dbf Add test coverage.
  • b99c4fe Restore real imports for compatibility with mypy.
  • e44e085 Use relative imports everywhere, for consistency.
  • 70fadbf Restore compatibility with Python < 3.9.
  • 217ac2d Fix broken link.
  • fc176f4 Bump version number.
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

dependencies python 
opened by dependabot[bot] 0
Releases(v0.0.7-alpha-hf-1)
  • v0.0.7-alpha-hf-1(May 31, 2021)

    Hotfix 1 for v0.0.7 Changelog:

    • Fix for dashboard not loading all apps
    • Fix for projects not appearing when various errors occur
    • Better errors if an app fails to launch
    • Better errors for submitting invalid YAML to a project
    Source code(tar.gz)
    Source code(zip)
  • v0.0.7-alpha(Apr 22, 2021)

    Yacht Alpha v0.0.7 Released!

    Notable Changes:

    • Shipwright a new template builder is released (pre-alpha)
    • Yacht is now a PWA and if published with SSL you'll be able to install it on most devices for easy access.
    • API Key framework so now applications can interact with Yacht directly (found in user settings when auth is enabled).
    • Changed logs and stats to Server Sent Events so websocket support is no longer needed *this may change in the future as I believe it will be needed for container CLI access
    • Redesigned the look of all the main pages
    • Support for command, memory limits, and cpu in templates and deployments.

    Bugfixes:

    • Better error handling for Projects.
    • Issue where ports were defined more than once
    • Data in dashboards being off
    • Various UI glitches
    • Other various fixes (view merge request for a full list)
    Source code(tar.gz)
    Source code(zip)
  • v0.0.6-alpha-hf1(Feb 24, 2021)

    Alpha 6 Hotifx 1

    Changelog

    • Added support bundle button to download your docker-compose.yml and all associated logs for you project.
    • Changed the dashboard to significantly improve performance (up to 70% less resource intensive).
    • Optimized the way websockets close (they now close when you navigate away from a page. Previously they would continue to try to send indefinitely).
    • Better application name detection in projects.
    • Fixed deploy from template page in the deploy page.
    Source code(tar.gz)
    Source code(zip)
  • v0.0.6-alpha(Feb 19, 2021)

    v0.0.6-alpha is here!

    UI Changes

    This update helps reduce some clutter in the sidebar by bringing in creation of resources into the list view. No more sub-menus for anything other than resources (images, networks, and volumes). image

    Compose/Projects

    There's now an in-browser compose editor to make creating new projects as easy as possible and this will allow me to add a lot of QoL features such as error checking and snippets in the future. image

    Editing

    You can now edit running containers! image

    Please be careful with this. It will remove the running container and launch a new one with the same settings. If you're doing something advanced that I don't have a field in the deploy form for the new version won't have it. Make sure everything in the deploy form looks correct.

    Tags

    Now there are tags with the release date available for both the master and develop branches so if I break something it's easy to fix!

    Changelog:

    • Authentication Framwork change (to fastapi-jwt-auth)
    • In-browser docker-compose editor
    • Misc. bugfixes
    • Projects, templates, and apps now follow a similar flow to resources (1-click to go to the list and the plus button to create a new one)
    • Env variable to set default template variables (BASE_TEMPLATE_VARIABLES=[{"variable": "!config", "replacement": "/yacht/AppData/Config"}, ...])
    • Editing containers is now available Warning, this can lead to data loss if you don't have a volume or bind setup for storage on the container you're editing. There's a warning in the UI about this.
    Source code(tar.gz)
    Source code(zip)
  • v0.0.5-alpha(Oct 31, 2020)

    Changelog

    Compose:

    Docker compose support is now available under the Projects section (default location is /config/compose/ for your docker-compose projects).

    This requires you to set /config to a bind mount. If you've already got /config mounted on a volume you can set /compose/ to a bind mount and set the COMPOSE_DIR environment variable equal to /compose/. Then put all of your folders that container docker-compose.yml files into that folder.

    image image

    DigitalOcean:

    There's now a DigitalOcean marketplace app for Yacht. I would love feedback on it if you get the chance to try it out.

    Fixes:

    • Fixed !PGID default variable
    • Unset variables trying to be deployed will now throw an error.
    • closes #194
    • closes #193
    Source code(tar.gz)
    Source code(zip)
  • v0.0.4-hf1(Oct 22, 2020)

    Changelog:

    Theming

    • Added theming in server settings
    • Saves the theme to your browser storage
    • Custom themes are able to be created various platforms and built with a buildarg

    Fixes:

    • Added error handling to templates and removed the requirement for a type setting
    • Fixed port disappearing when bridge is selected. Should only disappear when host isi.
    • Added none as option for restart_policy
    • Various formatting fixes
    Source code(tar.gz)
    Source code(zip)
  • v0.0.4-alpha(Oct 16, 2020)

    Changelog:

    Core features added:

    • Image managment
    • Volume managment
    • Network management
    • Disable Auth (use -e DISABLE_AUTH=True in your run command to disable authentication)

    Apps List:

    • Added filter for columns.

    App Deploy Form:

    • Added network_mode and network fields

    Image Managment:

    • Added image list
    • Added image details
    • Added basic image pull support

    Volume Managment:

    • Added volume list
    • Added volume details
    • Added basic volume creation

    Network Managment:

    • Added network list
    • Added network details
    • Added ability to create and delete networks (including macvlan and ipvlan)

    Templates:

    • Added network_mode support

    Misc:

    • Changed proxy_read_timeout to 300 seconds. If you run into timeout issues when checking for updates let me know.
    Source code(tar.gz)
    Source code(zip)
  • v0.0.3-alpha-hf1(Oct 3, 2020)

  • v0.0.3-alpha(Oct 3, 2020)

    Change log:

    Bug fixes/Minor Changes:

    • Websockets now work with reverse proxies (websocket support required)
    • Reduced data points on dashboard charts from 5 to 3 to increase performance.
    • Misc. other fixes/modifications that I don't remember.

    Apps:

    • Check for app updates (green dot indicates there's an update available)
    • One click container upgrades (spins up a watchtower instance with the --run-once flag targeting the selected container)
    • App actions are available from within the app details view
    • Deploy from template page shows a tabbed view of all templates

    Templates:

    • Template variables now work with environment variables

    Server Settings:

    • Separate purge buttons for each type of resource
    • Updates page to update Yacht from within itself (uses same watchtower method as above)
    Source code(tar.gz)
    Source code(zip)
  • v0.0.2-alpha(Sep 26, 2020)

    This update brings in some great community requested features. Templates/deploy form additions:

    • Port labels: give descriptions to ports so you know what they're for.
    • Container labels: useful for storing information in docker containers and used for things like traefik.
    • Devices: pass through devices into containers (useful for hardware transcoding)

    Frontend changes:

    • Deploy forms:
      • Descriptive errors for the deploy form so you know what went wrong.
      • When a deploy fails due to a duplicated port (or similar issue that creates a container but doesn't run it) the failed container will be removed so you don't run into a duplicate name issue.
      • Moved deploy form buttons to the right so they're under other buttons you may interact with.
    • App pages:
      • Port labels are displayed on the apps list if they are set. (You can hover to get the port number)
      • Container labels and devices added to the app information page
      • Stats graph for CPU will still show even if memory isn't available (mainly affects Pi devices)
      • Added a back button to app pages
    • Dashboard:
      • Stats graph for CPU will still show even if memory isn't available (mainly affects Pi devices)

    Backend changes:

    • Added labels, devices, and port labels to template compatibility.
    • Added labels and devices to db.
    • Added alembic to automatically add tables for users who are upgrading to the latest version (runs every time the app starts to make sure all tables that are needed are added)
    • Added check into stats endpoint for memory issue noted above (arm)

    If you run into any issues please open one on GitHub and if you have any feature requests please let me know. If you know python or VueJS I'd be happy to help you get your dev environment setup and get some help making this even better.

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1-alpha(Sep 23, 2020)

    Yacht has come a long way in the past few months and I think it's ready for an alpha especially to get some more feedback from people with different skill levels and possibly attract some dev help. I think the current features represent the minimum state that someone could use to manage containers but I also think there's a long way to go until this is feature complete. Thanks to all of you who've tried it out so far and I look forward to making it better as time goes on.

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1-prealpha(Aug 4, 2020)

    Tempaltes This is the initial Pre-Alpha release for Yacht. Everything has been re-written as a Flask API backend with a Vuejs frontend to provide a reactive experience. Not everything that was in the Flask version is available yet (User Roles is the main thing that's lacking) but there are some new features that weren't in the flask version such as:

    • Viewing Logs
    • Easy access to container actions
    • JWT Authentication
    • Full API (Available at /api (not yet documented))
    • Loading indicators (so you know things are actually happening)

    The main goals to finish Pre-Alpha and get to an actual Alpha are as follows:

    • Live log updates (so you don't have to refresh your page to get the latest logs).
    • Deploy logs (so you can see where exactly deployment is at).
    • Live updates of processes.
    • Building more stability into the JWT auth and interceptors to make sure you aren't logged out at weird times.
    • Show the user errors so they know what broke.
    • Variables in templates for common locations so they can be set in the "Server Settings" page and everything can truly be 1 click deployed.

    All relevant documentation (including installation info)) is available here: https://github.com/SelfhostedPro/Yacht/tree/vue

    Once we hit Alpha I will be archiving the current flask version and replacing it with the new vue version.

    Source code(tar.gz)
    Source code(zip)
  • v0.1a1(Jun 25, 2020)

    This is our first release! We're currently in alpha as we're still sorting out the kinks. We appreciate any support we can get from the community on this one. This is Yacht at it's most basic form and currently it's pretty limited but we'll be working hard to get a production release going soon.

    Source code(tar.gz)
    Source code(zip)
Owner
SelfhostedPro
Devops Enginner, Creator of Yacht
SelfhostedPro
Build a full-featured home server or NAS replacement with an Ubuntu box and this playbook.

Ansible NAS After getting burned by broken FreeNAS updates one too many times, I figured I could do a much better job myself using just a stock Ubuntu

David Stephens 1.2k Apr 13, 2021
lightweight webapp catalog based on containers, with user interface ร  la mobile app store

Puffin NOTE: The project is not maintained anymore, the code is here for historical / fork purposes. Introduction The goal of the project is to allow

null 85 Aug 26, 2021
Open and cheap DIY IP-KVM based on Raspberry Pi

Open and cheap DIY IP-KVM based on Raspberry Pi A very simple and fully functional Raspberry Pi-based KVM over IP that you can make with your own hand

Pi-KVM Project 3.3k Sep 11, 2021
DockSTARTer helps you get started with home server apps running in Docker.

The main goal of DockSTARTer is to make it quick and easy to get up and running with Docker. You may choose to rely on DockSTARTer for various changes

null 1.4k Sep 16, 2021
Ansible based Homeserver setup using Docker

CharjaBox Ansible based Homeserver setup using Docker. Inspired by Ansible NAS and HomelabOS What is this? CharjaBox is an Ansible playbook that can b

Sammy 31 Sep 12, 2021
TagSpaces is an offline, open source, document manager with tagging support

TagSpaces is a free, non-locking, open source application for organizing and managing your local files with the help of tags. It features note taking

TagSpaces 2.4k Sep 15, 2021
Deploy self-hosted apps easily: simple, bloat-free, independent installation

DPlatform deprecated in favor of dppm The main reasons of this are to improve maintainability, stability and add new features. Discover DPlatform-Dock

DFabric 251 Aug 21, 2021
Deploy self-hosted apps easily: simple, bloat-free, independent installation

DPlatform deprecated in favor of dppm The main reasons of this are to improve maintainability, stability and add new features. Discover DPlatform-Dock

DFabric 251 Aug 21, 2021
Run your web apps easily with a complete platform that you can install on any server. Build composable microservices and lambdas.

1Backend 1Backend is a platform designed to make deploying, running and maintaining lambda functions/microservices easy. It enables you to launch a ne

null 2k Sep 8, 2021
Lightweight justice for your single-board computer!

Lightweight justice for your single-board computer! optimised โ€ข simplified โ€ข for everyone Website โ€ข Documentation โ€ข View all supported platforms โ€ข For

null 2.7k Sep 21, 2021
Lightweight justice for your single-board computer!

Lightweight justice for your single-board computer! optimised โ€ข simplified โ€ข for everyone Website โ€ข Documentation โ€ข View all supported platforms โ€ข For

null 2.7k Sep 17, 2021
[mirror] Install and manage self-hosted services/applications, on your own server(s) - ansible collection and utilities

โ•ป โ•ปโ”โ”โ”“โ”โ”โ”“โ•ป โ•ป โ–‘โ–‘โ•บโ•‹โ•ธโ”—โ”โ”“โ”ฃโ”ณโ”›โ”ƒโ”โ”› โ•น โ•นโ”—โ”โ”›โ•นโ”—โ•ธโ”—โ”› Install and manage self-hosted services/applications, on your own server(s). xsrv provides: a comprehensiv

nodiscc 141 Sep 16, 2021
An HTML5 management interface for KVM guests

What is Kimchi? Browser Support Desktop Browser Support Mobile Browser Support Linux Support Getting started JFrog Repositories Install Dependencies B

null 2.7k Sep 13, 2021
๐Ÿ“ฆ Build code for NextcloudPi: Raspberry Pi, Odroid, Rock64, Docker, curl installer...

English | Traditional Chinese ็น้ซ”ไธญๆ–‡ | Simplified Chinese ็ฎ€ไฝ“ไธญๆ–‡ NextCloudPi This is the build code for NextCloudPi. NextCloudPi is a ready to use image f

Nextcloud 1.5k Sep 23, 2021
A set of Ansible playbooks to build and maintain your own private cloud: email, calendar, contacts, file sync, IRC bouncer, VPN, and more.

Introduction Sovereign is a set of Ansible playbooks that you can use to build and maintain your own personal cloud based entirely on open source soft

null 10.1k Sep 21, 2021
PirateBox Scriptcollection for running in Webserver

PirateBoxScripts with Modifications for running in a Webserver ยฉ 2012-2019 Matthias Strubel Licensed under the GNU GPLv3 Maintainers Matthias Strubel

PirateBox Project 184 Aug 30, 2021
Sandstorm is a self-hostable web productivity suite. It's implemented as a security-hardened web app package manager.

Sandstorm Sandstorm is a self-hostable web productivity suite. It's implemented as a security-hardened web app package manager. Sandstorm makes it eas

Sandstorm.io 5.9k Sep 16, 2021
Run popular services on your device with one click

Syncloud (https://syncloud.org) Simple self-hosting of popular apps. It is available as an image or a pre-built device. We are open to cooperation wit

null 284 Sep 20, 2021
VESTA Control Panel

Vesta Control Panel Vesta is an open source hosting control panel. Vesta has a clean and focused interface without the clutter. Vesta has the latest o

Serghey Rodin 2.5k Sep 24, 2021