Proxy server and process manager for developing web apps inspired by invoker and overmind.
Warning this is still very much a work in progress, there are a lot of rough edges.
Download the latest release for your platform and place it in your PATH.
You'll also need:
- A server (like Apache) running on port 80 to proxy to oxidux. Support for
binding directly to port 80 may be added in the future.
Example config for Apache:
apache
<VirtualHost *:80>
ServerName oxidux.test
ServerAlias *.test
ProxyPass "/" "http://localhost:8080/"
ProxyPreserveHost On
ProxyTimeout 600
ErrorDocument 503 "Oxidux is not running :("
</VirtualHost>
- DNS resolution for the .test
TLD.
- For Linux the dev-tld-resolver
tool is recommended, add test
to the DEV_TLD_DOMAINS
environment
variable to enable support for .test
domains.
- For MacOS, support is planned for hooking into the native DNS resolver
system, but not implemented at this time. Use one of the following for now:
- Add each app_name.test
to the /etc/hosts
file
- Set up a local DNS server (dnsmasq
or similar) and configure it to
resolve .test
domains to localhost.
```toml
[general]
proxy_port = 8080
[[apps]]
name = "first-app"
directory = "/path/to/app/"
commands = { app = "scripts/server -p $PORT" }
[[apps]] name = "second-app" directory = "/path/to/app/"
procfile = true
port = 3000 ```
bash
oxidux server apps.toml
Note that app processes will not be started immediately, they are automatically started when a network request comes in for them.
From the app directory, run
bash
oxidux restart web
The terminal will be connected to the Tmux session for that process.
From the app directory, run
bash
oxidux connect web
Connects to the Tmux session for a given process. If the process name is omitted the first process for the app will be used.
Licensed under GPL version 3 or later, see LICENSE.