3 个版本 (有破坏性更新)

0.4.0 2020年7月18日
0.3.0 2019年7月5日
0.2.1 2019年6月24日

#10 in #进程管理器

Download history 1/week @ 2024-02-19 36/week @ 2024-02-26 61/week @ 2024-04-01

每月下载量 61 次

GPL-3.0-or-later

76KB
2K SLoC

Oxidux

受 invoker 和 overmind 启发的 Web 应用开发中的代理服务器和进程管理器。

注意 这仍然是一个非常处于开发中的项目,有很多粗糙的边缘。

安装

HomeBrew 或 LinuxBrew:

brew tap jonmast/oxidux https://github.com/jonmast/oxidux.git
brew install oxidux

手动:下载适用于您的平台的最新版本,并将其放置在您的 PATH 中。

注意 目前不支持 Windows,但如果有需要移植的人,我很乐意提供帮助。

您还需要

  • Tmux - 所有应用都在 Tmux 会话中运行。

设置

Linux

DNS 解析

推荐使用 dev-tld-resolver 工具解析 *.test 域名到 localhost。您需要将 test 添加到 DEV_TLD_DOMAINS 环境变量中,以启用对 .test 域名的支持。

服务管理

Oxidux 可以从终端手动运行,但推荐使用 SystemD socket 激活。请参阅示例 socketservice 文件。

这些文件应该添加到 /etc/systemd/system/ 目录,并使用以下命令启用:

sudo systemctl daemon-reload
sudo systemctl enable oxidux.socket
sudo systemctl start oxidux.socket

MacOS

DNS 解析

Oxidux 内置了 DNS 解析器。将以下配置添加到 /etc/resolver/test

nameserver 127.0.0.1
port 6153

服务管理

推荐使用 Launchd 启动。请参阅示例 plist 文件

请将 plist 文件添加到 ~/Library/LaunchAgents/,并使用以下命令加载:

launchctl load ~/Library/LaunchAgents/oxidux.plist

配置

# config.toml

[general]
# The proxy server will run on this port. Ignored if socket activation is used.
proxy_port = 80
# DNS server port for MacOS. Also ignored with socket activation.
dns_port = 6153
# TLD for apps. Defaults to "test".
domain = "test"

应用配置

每个应用都应在 ~/.oxidux/apps 中有一个配置文件。示例

# ~/.oxidux/apps/my-app.toml

# Unique identifer and domain for app (this will be available at "my-app.test")
name="my-app"
# App root directory
directory = "/path/to/app/"
# Commands to start app processes
# dynamically generated port is passed in as an environment variable
commands = { web = "scripts/server -p $PORT", worker = "scripts/worker" }
# Alternatively, load commands from Procfile on app directory
procfile = true
# Alternate domains for app
aliases = ["othername", "yetanother"]

使用方法

重启进程

从应用目录中运行

oxidux restart     # Restart all processes for app
# Or
oxidux restart web # Restart just the process named "web"

终端将连接到该进程的 Tmux 会话。

连接到进程会话

从应用目录中运行

oxidux connect web

连接到指定进程的Tmux会话。如果省略进程名称,则使用应用的第一进程。

许可证

根据GPL版本3或更高版本许可,请参阅LICENSE

依赖项

~20MB
~382K SLoC