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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35745651a8d2887b981da72392539e7ffc7dac0057181d8a8a505cdc4ac6d673
|
|
| MD5 |
4b3190cf0b0151534f79171e91534493
|
|
| BLAKE2b-256 |
10df6f7925c5e94457949aa70d5b4f0f737613ee17a7458cdf143519ba2fc93f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0453e59c33acc4abe550ace1c2b4aa068e820c07aab632303e8a0f59c064d568
|
|
| MD5 |
8ba1c58bd862c93b20cb221de8bea00b
|
|
| BLAKE2b-256 |
94c3ec419cb1d28ff21ef426fcb83542794bd4c9de1f2eeece76e421a5b44b99
|