Skip to content

Latest commit

 

History

History
59 lines (47 loc) · 1.24 KB

README.md

File metadata and controls

59 lines (47 loc) · 1.24 KB

Hosty

A code based opinionated way to self-host and manage web apps.

Quick Example

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 (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 ...