https://github.com/fossable/outpost
Self-host via the cloud!
https://github.com/fossable/outpost
Last synced: 5 months ago
JSON representation
Self-host via the cloud!
- Host: GitHub
- URL: https://github.com/fossable/outpost
- Owner: fossable
- License: agpl-3.0
- Created: 2024-06-16T18:47:12.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-06-30T01:41:56.000Z (over 1 year ago)
- Last Synced: 2025-06-08T21:40:43.123Z (6 months ago)
- Language: Rust
- Homepage:
- Size: 115 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README




**outpost** allows you to expose self-hosted web services to the Internet via
popular cloud providers.
### Cloudflare
HTTP sites can be hosted with Cloudflare easily:
```yml
name: example_com
services:
outpost:
image: fossable/outpost:latest
depends_on:
- www
environment:
OUTPOST_CONFIG: |
{
"www.example.com": {
"service": "www",
"provider": "cloudflare",
"ports": ["80:443"]
}
}
OUTPOST_CLOUDFLARE_ORIGIN_CERT: |
-----BEGIN PRIVATE KEY-----
www:
image: httpd:latest
```
### AWS
`outpost` can also use an EC2 proxy to expose any TCP/UDP port. The proxy instance
communicates with the origin service via an ephemeral wireguard tunnel.
```yml
name: example_com
services:
outpost:
image: fossable/outpost:latest
depends_on:
- www
cap_add:
- NET_ADMIN
- SYS_MODULE
volumes:
- /lib/modules:/lib/modules
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
environment:
OUTPOST_CONFIG: |
{
"www.example.com": {
"service": "www",
"provider": "aws",
"ports": ["80:443"]
}
}
AWS_ACCESS_KEY_ID: <...>
AWS_SECRET_ACCESS_KEY: <...>
www:
image: httpd:latest
```