Skip to content

Control panel to Start/Stop/View Logs for apps in Docker, Systemd, VMs or anything else (with user scripts)

License

Notifications You must be signed in to change notification settings

aceberg/AnyAppStart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AnyAppStart

Main-Docker Binary-release GitHub License

Control panel to Start/Stop/Restart/View Logs for Docker, Systemd, VMs or anything else (with user scripts)

  • Backend: Go, Frontend: React, TypeScript, MobX
  • Small lightweight app, easy to set up and configure
  • User can add any types (like LXC or WakeOnLAN)
  • Control remote machines via SSH
  • Config in yaml files, no DB
  • Simple API

Screenshot

More screenshots

Expand

Screenshot Screenshot Screenshot

Installation

Expand

⚠️ Warning

  1. There is Docker image available, but inside the container only Docker Type will work, which kinda defeats the purpose of this app. So installing binary is recommended.
  2. There is no built-in auth in this app, so make sure to restrict access to it with firewall and/or SSO (like Authelia) or simple ForAuth

Binary

All binary packages can be found in latest release. There are .deb, .rpm, .apk (Alpine Linux) and .tar.gz files.

Supported architectures: amd64, i386, arm_v5, arm_v6, arm_v7, arm64.

For amd64 there is a deb repo available

Docker

For demo purposes, mostly.

docker run --name AnyAppStart \
  -e "TZ=$YOURTIMEZONE" \
  -v ~/.dockerdata/AnyAppStart:/data/AnyAppStart \ # yaml files here
  -v /var/run/docker.sock:/var/run/docker.sock \   # mount docker
  -p 8855:8855 \
aceberg/anyappstart

Usage

Expand

To run AnyAppStart as user, enable and start it:

sudo systemctl enable --now AnyAppStart@$USER.service

After, you need to fill types.yaml file, either manually by clicking Add Type in GUI Types menu, or by copying this types.yaml example to ~/.config/AnyAppStart/ (or /etc/AnyAppStart/ for root)

# $ITEMNAME is a variable that will be parsed into actual Items names
Docker:
    Logs: docker logs $ITEMNAME
    Restart: docker restart $ITEMNAME
    Start: docker start $ITEMNAME
    State: docker ps --filter status=running | grep $ITEMNAME
    Stop: docker stop $ITEMNAME
Systemd:
    Logs: sudo systemctl status $ITEMNAME
    Restart: sudo systemctl restart $ITEMNAME
    Start: sudo systemctl start $ITEMNAME
    State: sudo systemctl | grep running | grep $ITEMNAME
    Stop: sudo systemctl stop $ITEMNAME
VM:
    Logs: sudo journalctl -u libvirtd.service
    Restart: sudo virsh reboot $ITEMNAME
    Start: sudo virsh start $ITEMNAME
    State: sudo virsh list --state-running | grep $ITEMNAME
    Stop: sudo virsh shutdown $ITEMNAME
ssh-Docker:
    Logs: ssh remote-host-ip -f docker logs $ITEMNAME
    Restart: ssh remote-host-ip -f docker restart $ITEMNAME
    Start: ssh remote-host-ip -f docker start $ITEMNAME
    State: ssh remote-host-ip -f docker ps --filter status=running | grep $ITEMNAME
    Stop: ssh remote-host-ip -f docker stop $ITEMNAME
ssh-Systemd:
    Logs: ssh remote-host-ip -f sudo systemctl status $ITEMNAME
    Restart: ssh remote-host-ip -f sudo systemctl restart $ITEMNAME
    Start: ssh remote-host-ip -f sudo systemctl start $ITEMNAME
    State: ssh remote-host-ip -f sudo systemctl | grep running | grep $ITEMNAME
    Stop: ssh remote-host-ip -f systemctl stop $ITEMNAME

Config

Expand
Variable Description Default
TZ Set your timezone for correct time
HOST Listen address 0.0.0.0
PORT Port for web GUI 8855
THEME Any theme name from https://bootswatch.com in lowcase or additional minty
COLOR Background color: light or dark dark
NODEPATH Path to local node modules

Options

Expand
Key Description Default Systemd (root) Systemd (user)
-d Path to config dir /data/AnyAppStart /etc/AnyAppStart ~/.config/AnyAppStart
-n Path to local node modules

Build (for devs) and API

Expand

Thanks

Expand