openship 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +208 -0
- package/dist/index.js +1072 -315
- package/dist/server/index.js +4498 -55391
- package/dist/server/migrations/0056_moaning_daredevil.sql +2 -0
- package/dist/server/migrations/meta/0056_snapshot.json +9191 -0
- package/dist/server/migrations/meta/_journal.json +7 -0
- package/package.json +8 -4
package/README.md
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
<h1 align="center">Openship</h1>
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
Open-source, self-hostable deployment platform with built-in CI/CD.<br>
|
|
5
|
+
Push code, ship containers, manage infrastructure — from a desktop app, web dashboard, or CLI.
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<p align="center">
|
|
9
|
+
<a href="https://www.npmjs.com/package/openship"><img src="https://img.shields.io/npm/v/openship?color=0b7285&label=npm" alt="npm version" /></a>
|
|
10
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue" alt="License" /></a>
|
|
11
|
+
<a href="https://openship.io"><img src="https://img.shields.io/badge/website-openship.io-0b7285" alt="Website" /></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<a href="#quick-start">Quick Start</a> ·
|
|
16
|
+
<a href="#features">Features</a> ·
|
|
17
|
+
<a href="#three-interfaces">Interfaces</a> ·
|
|
18
|
+
<a href="https://openship.io/docs">Docs</a> ·
|
|
19
|
+
<a href="CONTRIBUTING.md">Contributing</a>
|
|
20
|
+
</p>
|
|
21
|
+
|
|
22
|
+
<p align="center">
|
|
23
|
+
<a href="README.md"><img src="https://img.shields.io/badge/lang-English-0b7285" alt="English" /></a>
|
|
24
|
+
<a href="docs/i18n/README.ar.md"><img src="https://img.shields.io/badge/lang-العربية-555" alt="العربية" /></a>
|
|
25
|
+
<a href="docs/i18n/README.zh.md"><img src="https://img.shields.io/badge/lang-简体中文-555" alt="简体中文" /></a>
|
|
26
|
+
<a href="docs/i18n/README.es.md"><img src="https://img.shields.io/badge/lang-Español-555" alt="Español" /></a>
|
|
27
|
+
<a href="docs/i18n/README.fr.md"><img src="https://img.shields.io/badge/lang-Français-555" alt="Français" /></a>
|
|
28
|
+
<a href="docs/i18n/README.ja.md"><img src="https://img.shields.io/badge/lang-日本語-555" alt="日本語" /></a>
|
|
29
|
+
<a href="docs/i18n/README.pt.md"><img src="https://img.shields.io/badge/lang-Português-555" alt="Português" /></a>
|
|
30
|
+
<a href="docs/i18n/README.de.md"><img src="https://img.shields.io/badge/lang-Deutsch-555" alt="Deutsch" /></a>
|
|
31
|
+
</p>
|
|
32
|
+
|
|
33
|
+
<p align="center">
|
|
34
|
+
<img src="docs/screenshots/screen.png" alt="Openship dashboard" width="800" />
|
|
35
|
+
</p>
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Quick Start
|
|
40
|
+
|
|
41
|
+
Pick by how you work — **solo → desktop app**, **team / always-on → CLI on a server**.
|
|
42
|
+
|
|
43
|
+
### Solo — desktop app
|
|
44
|
+
|
|
45
|
+
The control plane runs on your machine and drives your servers over SSH; nothing of Openship is exposed publicly. Download, open, done — no terminal needed:
|
|
46
|
+
|
|
47
|
+
| Platform | Download |
|
|
48
|
+
|---|---|
|
|
49
|
+
| **macOS** (Apple Silicon) | [Openship-arm64.dmg](https://github.com/oblien/openship/releases/latest/download/Openship-arm64.dmg) |
|
|
50
|
+
| **macOS** (Intel) | [Openship-x64.dmg](https://github.com/oblien/openship/releases/latest/download/Openship-x64.dmg) |
|
|
51
|
+
| **Windows** | [Openship-win32-x64.zip](https://github.com/oblien/openship/releases/latest/download/Openship-win32-x64.zip) |
|
|
52
|
+
| **Linux** | [Openship.AppImage](https://github.com/oblien/openship/releases/latest/download/Openship.AppImage) |
|
|
53
|
+
|
|
54
|
+
Linux: `chmod +x Openship.AppImage && ./Openship.AppImage`. Links always point at the newest release.
|
|
55
|
+
|
|
56
|
+
### Team / always-on — CLI on a server
|
|
57
|
+
|
|
58
|
+
Install the CLI (it bundles the API + dashboard), then run **`openship`** — an interactive wizard creates the first admin, wires your domain, and installs itself as a boot service. Run it again anytime to manage the instance.
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
curl -fsSL https://get.openship.io | sh # install (or: npm i -g openship)
|
|
62
|
+
openship # interactive setup, then control panel
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
For CI / headless boxes, skip the wizard and drive `openship up` directly — same background service, boots and auto-restarts:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
openship up # background service on this machine
|
|
69
|
+
openship up --public-url https://openship.example.com # + expose on your domain (edge + TLS handled)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
`openship open` opens the dashboard · `openship stop` stops it · `openship update` upgrades · `openship up --foreground` runs attached.
|
|
73
|
+
|
|
74
|
+
**Deploy a project:**
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
cd your-project
|
|
78
|
+
openship init # link this directory to a project
|
|
79
|
+
openship deploy
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Full server guide + complete CLI reference: **[docs/installation.md](docs/installation.md)**.
|
|
83
|
+
|
|
84
|
+
<details>
|
|
85
|
+
<summary>Advanced: run from source with Docker Compose (not the recommended path)</summary>
|
|
86
|
+
|
|
87
|
+
Heavier than the CLI, and the compose stack gives the control-plane container access to the host Docker daemon (host-privileged) — use it only if you specifically need a containerized control plane. The CLI and desktop app above are the supported installs.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
git clone https://github.com/oblien/openship.git && cd openship
|
|
91
|
+
cp .env.example .env
|
|
92
|
+
docker compose up -d
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
</details>
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## What It Does
|
|
100
|
+
|
|
101
|
+
Point it at a repo. Openship detects your stack, builds it, configures everything, and ships it — zero config files, zero pipelines, zero YAML.
|
|
102
|
+
|
|
103
|
+
Databases, domains, SSL, CDN, mail, backups — all managed from one place.
|
|
104
|
+
|
|
105
|
+
Solo devs shipping side projects and teams running production use the same tool.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Features
|
|
110
|
+
|
|
111
|
+
| | |
|
|
112
|
+
|---|---|
|
|
113
|
+
| **Built-in CI/CD** | Push-to-deploy, preview environments, staging/prod flows, rollbacks |
|
|
114
|
+
| **Any stack** | Node, Python, Go, Rust, PHP, Ruby, Java, .NET, Docker, monorepos |
|
|
115
|
+
| **Full backend** | Postgres, MySQL, MongoDB, Redis, workers, WebSockets, storage |
|
|
116
|
+
| **Domains & SSL** | Automatic Let's Encrypt, wildcards, unlimited domains, auto-renewal |
|
|
117
|
+
| **CDN** | Edge caching, HTTP/3, Brotli compression, instant purge |
|
|
118
|
+
| **Mail server** | Built-in SMTP with DKIM/SPF/DMARC — no Mailgun or SES needed |
|
|
119
|
+
| **Backups** | Scheduled, databases + volumes, one-click restore, export anytime |
|
|
120
|
+
| **Real-time monitoring** | Live build logs, container metrics, and resource usage streamed to your screen |
|
|
121
|
+
| **Scaling** | Auto-scaling on cloud, multi-node ready on self-hosted |
|
|
122
|
+
| **Portability** | Standard Docker containers — move between providers freely |
|
|
123
|
+
| **Docker Compose** | Deploy existing compose files as-is |
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Deploy Anywhere
|
|
128
|
+
|
|
129
|
+
- **Openship Cloud** — managed, auto-scaling, zero setup
|
|
130
|
+
- **Any VPS** — Hetzner, DigitalOcean, Linode, OVH, and the rest
|
|
131
|
+
- **Dedicated servers** — bare metal, colo, homelab
|
|
132
|
+
- **Multi-server** — spread workloads across machines
|
|
133
|
+
|
|
134
|
+
Same interface regardless of where you deploy.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Three Interfaces
|
|
139
|
+
|
|
140
|
+
- **Desktop app** — full GUI, real-time logs, one-click everything.
|
|
141
|
+
- **Web dashboard** — the same UI in the browser, built for teams.
|
|
142
|
+
- **CLI** — scriptable and CI-friendly.
|
|
143
|
+
|
|
144
|
+
A **REST API** and **MCP** (AI agent protocol) round it out for automation and tooling integration. Full command and API reference at [openship.io/docs](https://openship.io/docs).
|
|
145
|
+
|
|
146
|
+
> [!NOTE]
|
|
147
|
+
> The docs are still a work in progress — we're actively filling them out. If something's missing or unclear, [contributions](CONTRIBUTING.md) are hugely welcome and help us get there faster.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Status
|
|
152
|
+
|
|
153
|
+
Production-ready core, actively developed.
|
|
154
|
+
|
|
155
|
+
**Coming next:** multi-node clusters, load-balancing UI, private networking, advanced monitoring, and visual CI/CD pipelines.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Contributing
|
|
160
|
+
|
|
161
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Releasing
|
|
166
|
+
|
|
167
|
+
Cut a release with the version script — it syncs every package's version,
|
|
168
|
+
commits the bump, tags `vX.Y.Z`, and pushes:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
bun scripts/release.ts 0.2.0 # explicit version
|
|
172
|
+
# or a bump keyword: patch | minor | major | rc (minor from 0.1.x → 0.2.0)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Pushing the tag triggers [`.github/workflows/release.yml`](.github/workflows/release.yml), which:
|
|
176
|
+
|
|
177
|
+
- builds the **macOS / Windows / Linux installers** and the server tarballs (with SHA-256 sidecars),
|
|
178
|
+
- **publishes the `openship` CLI to npm** — via npm [OIDC trusted publishing](https://docs.npmjs.com/trusted-publishers) (no token), and
|
|
179
|
+
- creates the **GitHub Release** with the built assets (notes come from the tag).
|
|
180
|
+
|
|
181
|
+
To flag a release as **critical** (or add recommended/info advisories) in the
|
|
182
|
+
in-app updater, add an entry to [`release-advisories.json`](release-advisories.json)
|
|
183
|
+
**before** tagging — clients pull it pinned to the release tag. High-level notes
|
|
184
|
+
live in [`CHANGELOG.md`](CHANGELOG.md).
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Security
|
|
189
|
+
|
|
190
|
+
Found a vulnerability? We welcome your report — please disclose it **privately**,
|
|
191
|
+
never in a public issue, PR, or discussion.
|
|
192
|
+
|
|
193
|
+
- **Report it here (preferred):** [Report a vulnerability](https://github.com/oblien/openship/security/advisories/new) — a private GitHub advisory, visible only to you and the maintainers.
|
|
194
|
+
- Scope, what to include, and our response/disclosure process: [SECURITY.md](SECURITY.md).
|
|
195
|
+
|
|
196
|
+
Good-faith security research is **authorized** under our
|
|
197
|
+
[safe-harbor policy](SECURITY.md#safe-harbor), and we're happy to credit valid
|
|
198
|
+
first reports.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## License
|
|
203
|
+
|
|
204
|
+
Openship is **open-source** software, licensed under the [Apache License 2.0](LICENSE).
|
|
205
|
+
|
|
206
|
+
You may use, run, modify, self-host, and distribute it — including in commercial
|
|
207
|
+
and closed-source products — under the terms of the Apache 2.0 license. See
|
|
208
|
+
[LICENSE](LICENSE) for the full text.
|