hosty
Version:
A code based opinionated way to self-host and manage web apps.
59 lines (47 loc) • 1.27 kB
Markdown
# Hosty
A code based opinionated way to self-host and manage web apps.
# Quick Example
```ts
import {app, db, deploy, run} from 'hosty'
// 1. Specify what you want to deploy
// A postgres database
const database = db.postgres({
name: 'my-db',
user: 'db_user',
pass: 'db_pass'
})
// An application from a Git repo
const api = app.git({
name: 'my-api',
repo: 'https://url-to-my-repo.git',
branch: 'main',
domain: 'my-api-domain.com',
env: {
PORT: '80',
DB_HOST: database.host,
DB_USER: database.user,
DB_PASS: database.pass,
DB_NAME: database.name,
},
})
// 2. Specify where you want deploy
const myVPS = server({
name: '188.114.97.6' // hostname or IP
})
// 3. Deploy
deploy(myVPS, database, api)
run()
```
This code will do the following:
1. Connect to your server via SSH
2. Create the postgres database
3. Clone your repo, build and run it
4. Configure the domain with https support
# Requirements
**On local machine:**
- [Ansible](https://www.ansible.com/) (tested with v2.16.6)
- Nodejs (tested with v22.8)
**On the server**
- A Linux server that uses `apt` and `systemctl` (tested on Ubuntu 22.04)
- A user with `sudo` ability (using the root user is not recommended)
_The detailed documentation is coming soon ..._