Skip to main content

Garudan Server — Self-hosted backend API for the Garudan mobile app

Project description

garudan-server

Backend API for the Garudan mobile app.

Install in 60 seconds

pip3 install garudan-server
garudan-server setup
garudan-server start

That's it. The interactive setup wizard asks for your SSH credentials and generates a config at ~/.garudan.env.

Requirements

  • Python 3.10+
  • Linux server (SSH must be enabled)
  • Docker socket readable (for Docker features) — optional

Expose publicly (optional)

For the app to work outside your home network, expose port 8400:

Cloudflare Tunnel (recommended — free):

cloudflared tunnel create garudan
cloudflared tunnel route dns garudan api.yourdomain.com
cloudflared tunnel run --url http://localhost:8400 garudan

Tailscale (easiest — no domain needed):

curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
# Use your Tailscale IP (100.x.x.x:8400) as the API URL in the app

Configuration

All settings live in ~/.garudan.env:

ADMIN_USER=admin
ADMIN_PASS=your_password
SECRET_KEY=auto_generated
SSH_HOST=localhost
SSH_PORT=22
SSH_USER=youruser
SSH_PASSWORD=yourpassword   # or use SSH_KEY_PATH
FILE_ROOT=/home/youruser
PORT=8400

API Docs

Once running, visit http://localhost:8400/docs for the full interactive API documentation.

Systemd Service (auto-start on boot)

cat > /etc/systemd/system/garudan-server.service << 'UNIT'
[Unit]
Description=Garudan Server
After=network.target

[Service]
Type=simple
User=YOUR_USERNAME
ExecStart=/usr/local/bin/garudan-server start
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
UNIT

systemctl enable --now garudan-server

Docker

docker run -d \
  --name garudan-server \
  -p 8400:8400 \
  -e ADMIN_USER=admin \
  -e ADMIN_PASS=changeme \
  -e SSH_HOST=host.docker.internal \
  -e SSH_USER=youruser \
  -e SSH_PASSWORD=yourpassword \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /home/youruser:/data \
  --restart unless-stopped \
  ghcr.io/your-username/garudan-server:latest

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

garudan_server-1.0.0.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

garudan_server-1.0.0-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file garudan_server-1.0.0.tar.gz.

File metadata

  • Download URL: garudan_server-1.0.0.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for garudan_server-1.0.0.tar.gz
Algorithm Hash digest
SHA256 35745651a8d2887b981da72392539e7ffc7dac0057181d8a8a505cdc4ac6d673
MD5 4b3190cf0b0151534f79171e91534493
BLAKE2b-256 10df6f7925c5e94457949aa70d5b4f0f737613ee17a7458cdf143519ba2fc93f

See more details on using hashes here.

File details

Details for the file garudan_server-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: garudan_server-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for garudan_server-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0453e59c33acc4abe550ace1c2b4aa068e820c07aab632303e8a0f59c064d568
MD5 8ba1c58bd862c93b20cb221de8bea00b
BLAKE2b-256 94c3ec419cb1d28ff21ef426fcb83542794bd4c9de1f2eeece76e421a5b44b99

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page