Metadata-Version: 2.1
Name: shipyard-urbit
Version: 0.1.2
Summary: Urbit hosting and automation platform
License: Apache-2.0
Author: nodreb-borrus
Author-email: nodreb@borr.us
Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: docker[ssh] (>=5.0.3,<6.0.0)
Requires-Dist: fastapi (>=0.79.0,<0.80.0)
Requires-Dist: psycopg2-binary (>=2.9.3,<3.0.0)
Requires-Dist: python-dotenv (>=0.21.0,<0.22.0)
Requires-Dist: sqlmodel (>=0.0.8,<0.0.9)
Requires-Dist: typer[all] (>=0.6.1,<0.7.0)
Requires-Dist: uvicorn[standard] (>=0.18.2,<0.19.0)
Description-Content-Type: text/markdown

# Shipyard

Urbit hosting and automation platform.

Note: this is a Pre-Release package.  All changes will be breaking.  Wait for release 1.0.0 or later.

## Install

```
pip install shipyard-urbit
```

## Usage

```
shipyard
```

## Configuration

Specify the following environment vars to configure your application.  You may use a `.env` file in the location where `shipyard` is run.

- `SHIPYARD_DATA_DIR` - directory where SQLite database and other data will live, default: `~/.shipyard/`
    -  Override at runtime using the `--data-dir` option
- `SHIPYARD_SQLITE_FILENAME` - name of the db file within the data directory, default: `shipyard.db`
- `SHIPYARD_POSTGRES_URL` - PostgreSQL connection string to override use of SQLite, default: `None`

PostgreSQL is only recommended for large multi-user deployments. You must create your database before connecting with shipyard like so:

```
CREATE DATABASE shipyard;
```

Then `SHIPYARD_POSTGRES_URL` should look something like this:

```
postgresql://user:password@127.0.0.1:5432/shipyard
```

## API Overview

Visit [redacted] for full API Documentation.

## Development

### Modules

#### shipyard

 * `db.py` - database engine for sqlite/postresql application state
 * `models.py` - types used throughout the project
 * `settings.py` - system-wide settings and env vars

#### shipyard.api

HTTP API built with FastAPI.

#### shipyard.cli

Command-line interface built with Typer.

#### shipyard.colony

Host setup and configuration using Ansible.

#### shipyard.deploy

Creating and migrating Urbit ships within our host infrastructure.

#### shipyard.envoy

Communication and direction of Urbit ships.

#### shipyard.vigil

Monitoring and alerting. WIP.

## License

This project is licensed under Apache-2.0.  Code licensed from other projects will be clearly marked with the appropriate notice.

