📡 Oxen Server
The oxen-server binary is a remote server that can be used to run an API to sync the data to.
You can either setup an oxen-server
instance yourself, or use the hosted version on OxenHub. The hosted solution comes with a UI and the benefits of not having to setup infrastructure yourself. Sign up here to get started.
If you want to kick the tires of Oxen in the privacy of your own infrastructure, you can setup a local server.
Install
To setup a local Oxen Server instance, first install the oxen-server
binary.
Mac OS
On Mac-OS you can use Homebrew to install the binary.
Ubuntu
On Ubuntu you can download the latest .deb file from our GitHub Releases and install it.
Docker
To run the server in a docker container, download the latest .tar file from our GitHub Releases and run the following commands.
To install on other platforms, follow the installation instructions.
Starting the Server
The server can be run with access token authentication turned on or off. The server runs with no authentication by default.
To enable authentication, generate a token to give it to the user to access to the server
You may have different authentication tokens for different hosts. From the client side, you can setup an auth token per host with the config
command. If you ever need to debug or edit the tokens manually, they are stored in the ~/.config/oxen/auth_config.toml
file.
To run the server with authentication, use the -a
flag
The default directory that Oxen stores data is /tmp/oxen_sync
, we definitely do not want this in production. To change it set the SYNC_DIR environment variable to a path.
If you want to change the default IP ADDRESS
and PORT
you can do so by passing them in with the -i
and -p
parameters.
Pushing the Changes
Once you have committed data locally and are ready to share them with colleagues (or the world) you will have to push them to a remote.
Assuming you have already installed the oxen
CLI, you can create a remote repository on the server.
Note: The host and scheme are optional and default to hub.oxen.ai
and https
respectively. If you are running a local server, you can set the host to localhost:3000
and the scheme to http
.
You can either clone data from this remote repository, or push data to it.
Clone the empty repository:
OR create a new repository:
and add the remote to an existing repository:
Once a remote is set you can push
You can change the remote (origin) and the branch (main) to whichever remote and branch you want to push.