Платформа безопасной публикации локальных сервисов в интернете. Открытый клиент под лицензией Apache 2.0.
- Сайт проекта: https://cloudpub.ru
- Документация: https://cloudpub.ru/docs
CloudPub – это отечественная альтернатива Ngrok, представляющая собой комбинацию прокси-сервера, шлюза и туннеля в локальную сеть. Его основная задача заключается в предоставлении публичного доступа к локальным ресурсам через защищенный канал.
- Поддержка множества протоколов: HTTP, HTTPS, TCP, UDP, 1C, WebDAV, Minecraft, RTSP
- Плагинная архитектура: Легкое добавление новых протоколов
- Безопасность: Шифрование трафика через TLS, управление доступом
- Простота: Публикация сервиса одной командой
- Кроссплатформенность: Windows, Linux, macOS
- Автозапуск: Установка в качестве системного сервиса
- API и SDK: Программная интеграция для Rust и Python
- client/ - CLI клиент (
clo
) для управления публикациями - common/ - Общие компоненты и описание протокола
- sdk/rust - SDK для Rust
- sdk/pytrhon - SDK для Python
Скачайте последнюю версию с cloudpub.ru для вашей платформы.
cargo build --release --package cloudpub-client
cargo install cloudpub-client
# Создайте аккаунт на https://cloudpub.ru/dashboard
# Затем авторизуйтесь через CLI:
clo login
# HTTP сервер на порту 8080
clo publish http 8080
# С именем и авторизацией
clo publish -n "Мой сервис" -a basic http 8080
# TCP сервис (например, база данных)
clo publish tcp 5432
# Файлы (через WebDAV)
clo publish webdav /path/to/files
# Список активных публикаций
clo ls
# Остановить публикацию
clo stop <guid>
# Удалить публикацию
clo unpublish <guid>
Команда | Описание |
---|---|
login |
Авторизация на сервере |
logout |
Завершение сессии |
publish |
Добавить и запустить публикацию |
unpublish |
Удалить публикацию |
ls |
Список публикаций |
run |
Запустить агент с сохраненными публикациями |
start/stop |
Управление конкретной публикацией |
clean |
Удалить все публикации |
service |
Управление системным сервисом |
upgrade |
Обновить клиент |
# Локальный веб-сервер
clo publish http 3000
# HTTPS на другом хосте
clo publish https 192.168.1.100:443
# С заголовками
clo publish -H "X-Custom:value" http 8080
# Базовая авторизация
clo publish -a basic http 8080
# ACL правила (email:role)
clo publish -a form -A admin@example.com:admin -A user@example.com:reader http 8080
# Установить (требует sudo)
sudo clo service install
# Запустить
sudo clo service start
# Статус
clo service status
use cloudpub_sdk::Connection;
use cloudpub_common::protocol::{Protocol, Auth};
#[tokio::main]
async fn main() -> Result<()> {
let mut conn = Connection::builder()
.credentials("user@example.com", "password")
.build()
.await?;
let endpoint = conn.publish(
Protocol::Http,
"localhost:8080".to_string(),
Some("Мой сервис".to_string()),
Some(Auth::None),
).await?;
println!("Опубликовано: {}", endpoint.as_url());
Ok(())
}
from cloudpub_python_sdk import Connection, Protocol, Auth
# Создание подключения
conn = Connection(
config_path="/tmp/cloudpub.toml",
log_level="info",
verbose=True,
email="user@example.com",
password="password"
)
# Публикация HTTP сервиса
endpoint = conn.publish(
Protocol.HTTP,
"localhost:8080",
"Мой сервис",
Auth.NONE
)
print(f"Опубликовано: {endpoint.url}")
# Управление сервисами
services = conn.ls()
conn.start(endpoint.guid)
conn.stop(endpoint.guid)
conn.unpublish(endpoint.guid)
docker build --target artifacts --output type=local,dest=. .
Результат в директории artifacts
:
x86_64/clo
- Linux x86_64aarch64/clo
- Linux ARM64arm/clo
- Linux ARMwin64/clo.exe
- Windows x86_64
# CLI клиент
cargo build -p cloudpub-client --release
# SDK
cargo build -p cloudpub-sdk --release
Apache License 2.0
- GitHub Issues
- Email: support@cloudpub.ru
- Telegram: @cloudpub_support