Skip to content
/ hosty Public

Self host your web apps and services with ease.

Notifications You must be signed in to change notification settings

webNeat/hosty

Repository files navigation

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

About

Self host your web apps and services with ease.

Resources

Stars

Watchers

Forks

Packages

No packages published