rexctl commands
This page is made from the help that rexctl prints, and rexctl <command> --help shows the same text in the terminal.
Flags for every command
Section titled “Flags for every command”-
--dir stringFolder with your instance.
-
-q,--quietPrint only errors and results.
-
--verbosePrint every step and command.
-
-y,--yesAnswer yes to every question and never prompt.
rexctl admins
Section titled “rexctl admins”Choose who can manage your instance.
rexctl admins add
Section titled “rexctl admins add”Make an account an admin.
rexctl admins add <user>rexctl admins remove
Section titled “rexctl admins remove”Remove admin access from an account.
rexctl admins remove <user>rexctl admins sign-in-link
Section titled “rexctl admins sign-in-link”Print a link that signs an admin in once. Use it to get in when Require SSO is on and your sign-in provider is down or set up wrong. See https://docs.fluxer.com/operator/sign-in/#single-sign-on.
rexctl admins sign-in-link <user>rexctl auto-upgrade
Section titled “rexctl auto-upgrade”Show whether rexctl upgrades Fluxer, or the voice servers on a voice machine, by itself, when it runs next and how the last run went. Each run is rexctl upgrade --yes and works like an upgrade you run yourself.
rexctl auto-upgrade [flags]-
--jsonPrint JSON.
rexctl auto-upgrade off
Section titled “rexctl auto-upgrade off”Stop upgrading Fluxer by itself. This also stops the monthly full backup that --full-backup turned on.
rexctl auto-upgrade offrexctl auto-upgrade on
Section titled “rexctl auto-upgrade on”Run rexctl upgrade --yes by itself with a systemd timer, or with cron on machines without systemd. It runs every day, or once a week on the day you pass to --day. Pass several times to --at, like 06:00,18:00, to run more than once on those days. Each run backs up your instance first and goes back to the release you had if the new one doesn't start. It skips that run if another rexctl command is changing the instance, and tries again at the next one. A weekly run that is skipped or fails waits a week, and you can run rexctl upgrade yourself at any time. With --full-backup monthly it also makes a full backup with uploads on the 1st of every month, 3 hours before the first upgrade time of the day. Run it again to change the day, the time, the backups or the address. Leaving out a flag sets it back to its default, and leaving out --notify stops the notifications.
With --notify, rexctl posts JSON to the address when an upgrade installs a new release or fails: instance, status (upgraded or failed), release, and the message as both text and content, which Slack and Discord webhooks show as they are. For ntfy, add ?tpl=1&m={{.text}} to the topic address.
rexctl auto-upgrade on [flags]-
--at stringTime of day to upgrade, as HH:MM in this machine's time zone. Separate several times with commas, like 06:00,18:00. The default is
04:00. -
--backup stringWhat the backup before each upgrade holds, full or without-uploads. When an upgrade changes how uploads are stored, the backup includes them anyway. The default is
full. -
--day stringRun once a week on this day, like sun. Leave it out to run every day.
-
--full-backup stringPass monthly to also make a full backup with uploads on the 1st of every month.
-
--notify stringWeb address rexctl posts to when an upgrade installs a new release or fails.
rexctl backup
Section titled “rexctl backup”Back up your instance in one file that restores on this machine or a new one. It has the database, search data and uploads that Fluxer stores itself. Fluxer pauses while uploads are copied.
rexctl backuprexctl backup keep
Section titled “rexctl backup keep”Show or change how many backups rexctl keeps. After each backup, rexctl deletes the oldest ones beyond this number, except the backup that rexctl rollback needs and the newest backup with uploads. Pass all to keep every backup.
rexctl backup keep [count|all] [flags]-
--jsonPrint JSON.
rexctl backup list
Section titled “rexctl backup list”List your backups.
rexctl backup list [flags]-
--jsonPrint JSON.
rexctl backup location
Section titled “rexctl backup location”Show the folder rexctl saves backups in, or pass a full path to save new backups there. Backups that are already saved stay where they are.
rexctl backup location [folder] [flags]-
--jsonPrint JSON.
rexctl backup verify
Section titled “rexctl backup verify”Check that a backup is complete and readable.
rexctl backup verify <file>rexctl branding
Section titled “rexctl branding”Change your instance's name, colour and images.
rexctl branding set
Section titled “rexctl branding set”Change the name, colour, logo or icon.
rexctl branding set [flags]-
--colour stringAccent colour as a hex code, like #4641d9.
-
--icon stringImage file for the icon.
-
--logo stringImage file for the logo.
-
--name stringYour instance's name.
rexctl config
Section titled “rexctl config”Read and change Fluxer's settings.
rexctl config edit
Section titled “rexctl config edit”Opens custom.compose.yml in $VISUAL or $EDITOR. rexctl checks the file, says which services restart and applies it once you agree. Your file stays as it was until it passes the check.
rexctl config editrexctl config get
Section titled “rexctl config get”Show one setting.
rexctl config get <key> [flags]-
--jsonPrint JSON.
-
--revealPrint a secret rexctl keeps.
rexctl config list
Section titled “rexctl config list”List every setting with its value and help.
rexctl config list [flags]-
--jsonPrint JSON.
rexctl config set
Section titled “rexctl config set”Change one or more settings.
rexctl config set <key> <value> | <key>=<value>... [flags]-
--migrate-identitiesWhen sso.issuer changes, move SSO links to the new issuer.
-
--no-migrate-identitiesWhen sso.issuer changes, leave SSO links on the old issuer.
rexctl config unset
Section titled “rexctl config unset”Go back to the default for one or more settings.
rexctl config unset <key>...rexctl doctor
Section titled “rexctl doctor”Check your instance and this machine for problems.
rexctl doctor [flags]-
--fixFix the problems rexctl can fix safely.
-
--jsonPrint JSON.
rexctl down
Section titled “rexctl down”Stop Fluxer and remove its containers and networks, like docker compose down. Your data, settings, backups and images stay. Fluxer stays stopped until you run rexctl start, which creates the containers again.
rexctl downrexctl eject
Section titled “rexctl eject”Writes every setting into the instance folder for docker compose and stops rexctl from changing the instance. Fluxer keeps running. Run rexctl takeover to hand it back.
rexctl ejectrexctl email
Section titled “rexctl email”Set up how your instance sends email.
rexctl email off
Section titled “rexctl email off”Stop sending email.
rexctl email offrexctl email set
Section titled “rexctl email set”Set the SMTP server.
rexctl email set [flags]-
--from stringSender, like Example Chat <noreply@chat.example.com>.
-
--host stringThe SMTP server.
-
--password-file stringFile with the SMTP password, or - for stdin.
-
--port intThe SMTP port. The default is
587. -
--tls stringHow the connection is encrypted (starttls, implicit, opportunistic or none). Picked from the port when left out.
-
--username stringThe username for the SMTP server.
rexctl email test
Section titled “rexctl email test”Send a test email.
rexctl email test [address]rexctl install
Section titled “rexctl install”Install Fluxer on this machine, or take over an existing install.
rexctl install [flags]-
--admin-email stringEmail address for your admin account.
-
--admin-password-file stringFile with your admin password, or - for stdin.
-
--admin-username stringUsername for your admin account.
-
--behind-proxyServe plain HTTP for your own reverse proxy.
-
--bind stringAddress your proxy connects to, with --behind-proxy. The default is
127.0.0.1:8080. -
--confirm stringYour instance's domain, to confirm without a prompt.
-
--delete-old-dataDelete Fluxer data found on this machine and start fresh.
-
--domain stringAddress people will use to open your instance, like chat.example.com.
-
--dry-runShow what would happen without changing anything.
-
--engine stringContainer engine to use (docker or podman).
-
--install-dockerInstall Docker if it's missing. The default is
true. -
--memory-profile stringPin small, medium or large instead of sizing Fluxer to this machine on every start.
-
--name stringYour instance's name.
-
--no-bundled-voiceRun without the bundled LiveKit and use only voice servers you add later.
-
--no-startWrite the files without starting Fluxer.
-
--open-firewallOpen the ports Fluxer needs in ufw or firewalld. The default is
true. -
--project stringName for this instance's containers and volumes, for running more than one instance on a host. The default is
fluxer. -
--registration stringWho can create an account (invite, approval, open or closed).
-
--setup stringWhere to create your admin account (terminal or browser).
-
--setup-podmanStart Podman's API socket and start Fluxer with the machine. The default is
true. -
--sign-in stringHow people sign in (email or username).
-
--skip-emailSet up email later.
-
--smtp-from stringSender, like Example Chat <noreply@chat.example.com>.
-
--smtp-host stringThe SMTP server.
-
--smtp-password-file stringFile with the SMTP password, or - for stdin.
-
--smtp-port intThe SMTP port. The default is
587. -
--smtp-tls stringHow the connection is encrypted (starttls, implicit, opportunistic or none). Picked from the port when left out.
-
--smtp-username stringThe username for the SMTP server.
-
--storage-access-key stringThe object store access key.
-
--storage-bucket-prefix stringText to put before each bucket name, like chat- for chat-fluxer.
-
--storage-endpoint stringYour own S3-compatible object store, like https://s3.example.com, instead of the bundled one.
-
--storage-path-stylePut the bucket in the path of object store addresses instead of the host name. The default is
true. -
--storage-public-endpoint stringThe object store address browsers use, when it differs from --storage-endpoint.
-
--storage-region stringThe object store region (found from --storage-endpoint when it can be).
-
--storage-secret-key-file stringFile with the object store secret key, or - for stdin.
-
--take-overTake over Fluxer data found on this machine.
-
--voice-ip stringPublic IP address for voice and video (found automatically).
-
--voice-tcp-port intTCP port for voice and video, for running more than one instance on a host.
-
--voice-udp-port intUDP port for voice and video, for running more than one instance on a host.
rexctl invites
Section titled “rexctl invites”Manage invite links for new accounts.
rexctl invites create
Section titled “rexctl invites create”Create an invite link.
rexctl invites create [flags]-
--expires stringHow long the link works, like 12h, 7d or never. The default is
7d. -
--label stringA note to help you recognise the link.
-
--uses intHow many people can use the link, or 0 for no limit. The default is
1.
rexctl invites list
Section titled “rexctl invites list”List invite links.
rexctl invites list [flags]-
--jsonPrint JSON.
rexctl invites revoke
Section titled “rexctl invites revoke”Stop an invite link from working.
rexctl invites revoke <id>rexctl logs
Section titled “rexctl logs”Show logs from your instance.
The services are web, api, worker, gateway, voice, media, edge, admin, push, database, search, storage, cache, queue and internal. Without a service, rexctl shows every service.
rexctl logs [service] [flags]-
-f,--followKeep printing new lines.
-
--since stringShow lines newer than this, like 10m or 2h.
rexctl proxy
Section titled “rexctl proxy”Use your own reverse proxy in front of Fluxer.
rexctl proxy off
Section titled “rexctl proxy off”Serve HTTPS directly with a certificate from Let's Encrypt.
rexctl proxy offrexctl proxy on
Section titled “rexctl proxy on”Serve plain HTTP for your own proxy.
rexctl proxy on [flags]-
--bind stringAddress your proxy connects to, kept when left out (127.0.0.1:8080 the first time).
rexctl registration
Section titled “rexctl registration”Choose who can create an account.
rexctl registration approve
Section titled “rexctl registration approve”Approve a person waiting for approval.
rexctl registration approve <id>rexctl registration deny
Section titled “rexctl registration deny”Turn down a person waiting for approval.
rexctl registration deny <id>rexctl registration pending
Section titled “rexctl registration pending”List people waiting for approval.
rexctl registration pending [flags]-
--jsonPrint JSON.
rexctl registration set
Section titled “rexctl registration set”Set who can create an account.
rexctl registration set <open|approval|invite|closed>rexctl restart
Section titled “rexctl restart”Restart your instance.
rexctl restartrexctl restore
Section titled “rexctl restore”Restore your instance from a backup. This works on a new machine too. Copy the backup file there and run this command. A backup without uploads restores only on the instance it was made for, and the uploads there stay as they are.
rexctl restore <file> [flags]-
--confirm stringYour instance's domain, to confirm without a prompt.
-
--engine stringMove the instance to another engine while restoring (docker).
rexctl rollback
Section titled “rexctl rollback”Go back to the release you ran before the last upgrade.
rexctl rollback [flags]-
--confirm stringYour instance's domain, to confirm without a prompt.
-
--dry-runShow what would happen without changing anything.
-
--restore-databaseAlso restore the database from the backup taken before the upgrade.
rexctl search
Section titled “rexctl search”Manage search on your instance.
rexctl search reindex
Section titled “rexctl search reindex”Rebuild every search index from your data, with the messages in every channel and DM. Search shows partial results until it finishes. If a rebuild is already running, rexctl follows that one, and stopping rexctl doesn't stop the rebuild.
rexctl search reindex [flags]-
--no-waitStart the rebuild and return without waiting for it.
rexctl setup
Section titled “rexctl setup”Create the admin account and finish setup in the terminal.
rexctl setup [flags]-
--admin-email stringEmail address for your admin account.
-
--admin-password-file stringFile with your admin password, or - for stdin.
-
--admin-username stringUsername for your admin account.
-
--name stringYour instance's name.
-
--registration stringWho can create an account (invite, approval, open or closed).
-
--sign-in stringHow people sign in (email or username).
-
--skip-emailSet up email later.
-
--smtp-from stringSender, like Example Chat <noreply@chat.example.com>.
-
--smtp-host stringThe SMTP server.
-
--smtp-password-file stringFile with the SMTP password, or - for stdin.
-
--smtp-port intThe SMTP port. The default is
587. -
--smtp-tls stringHow the connection is encrypted (starttls, implicit, opportunistic or none). Picked from the port when left out.
-
--smtp-username stringThe username for the SMTP server.
rexctl setup token
Section titled “rexctl setup token”Show the setup token for the browser.
rexctl setup tokenrexctl start
Section titled “rexctl start”Start your instance.
rexctl startrexctl status
Section titled “rexctl status”Show whether your instance is running.
rexctl status [flags]-
--jsonPrint JSON.
rexctl stop
Section titled “rexctl stop”Stop Fluxer and keep its containers. Fluxer stays stopped until you run rexctl start. To remove the containers too, run rexctl down.
rexctl stoprexctl takeover
Section titled “rexctl takeover”Hands an instance made by the old installer, by hand with docker compose, or released with rexctl eject over to rexctl. Fluxer keeps running as it is.
rexctl takeover [flags]-
--dry-runShow what would change without changing anything.
rexctl uninstall
Section titled “rexctl uninstall”Remove Fluxer from this machine, with its data and backups unless you pass --keep-data. To stop Fluxer and keep everything, run rexctl stop or rexctl down.
rexctl uninstall [flags]-
--confirm stringYour instance's domain, to confirm without a prompt.
-
--keep-dataKeep your data and backups.
rexctl upgrade
Section titled “rexctl upgrade”Upgrade rexctl and Fluxer to the latest release.
rexctl upgrade [flags]-
--backup stringWhat the backup before this upgrade holds, full or without-uploads. When the upgrade changes how uploads are stored, the backup includes them anyway. The default is
full. -
--checkShow whether an upgrade is available without changing anything.
-
--dry-runShow what would happen without changing anything.
-
--jsonPrint JSON.
-
--no-backupSkip the backup before upgrading.
-
--prefetchDownload the new version and upgrade later.
-
--to stringUpgrade to this version, not the latest.
rexctl use
Section titled “rexctl use”Show which instance rexctl uses when you don't pass --dir and aren't in an instance folder, or pass a folder to use that instance from now on. rexctl remembers each instance it installs. You only need this with more than one instance or one installed by an older rexctl. Each account has its own choice. Root's choice also applies to accounts that have no instance of their own. The services rexctl sets up for starting and upgrading Fluxer always pass their own folder, and this choice doesn't change them.
rexctl use [folder]rexctl users
Section titled “rexctl users”Manage accounts on your instance.
rexctl users ban
Section titled “rexctl users ban”Ban an account.
rexctl users ban <user> [flags]-
--delete-messagesAlso delete their messages.
-
--reason stringWhy you're banning them, one of spam, scam, harassment, hate, threats, raids, automation, ban-evasion, impersonation, malware, doxxing, intimate-images, explicit-content, adult-content, violence, self-harm, illegal, deception, exploits or report-abuse.
rexctl users create
Section titled “rexctl users create”Create an account and print a link to set its password.
rexctl users create <username> [flags]-
--adminMake the account an admin.
-
--email stringEmail address for the account.
rexctl users delete
Section titled “rexctl users delete”Delete an account and its data.
rexctl users delete <user> [flags]-
--confirm stringYour instance's domain, to confirm without a prompt.
rexctl users disable-mfa
Section titled “rexctl users disable-mfa”Turn off two-factor authentication for an account.
rexctl users disable-mfa <user>rexctl users list
Section titled “rexctl users list”List accounts.
rexctl users list [flags]-
--adminsOnly show admins.
-
--jsonPrint JSON.
-
--search stringOnly show accounts that match this text.
rexctl users reset-link
Section titled “rexctl users reset-link”Print a link to set a new password.
rexctl users reset-link <user>rexctl users show
Section titled “rexctl users show”Show one account.
rexctl users show <user> [flags]-
--jsonPrint JSON.
rexctl users sign-out
Section titled “rexctl users sign-out”Sign an account out everywhere.
rexctl users sign-out <user>rexctl users unban
Section titled “rexctl users unban”Lift a ban.
rexctl users unban <user>rexctl version
Section titled “rexctl version”Show the rexctl and Fluxer versions.
rexctl version [flags]-
--jsonPrint JSON.
rexctl voice
Section titled “rexctl voice”Run standalone LiveKit voice servers next to Fluxer with rexctl voice add, or on other machines with rexctl voice token and rexctl voice join.
To run without the bundled voice server, run rexctl config set voice.bundled false, or install with rexctl install --no-bundled-voice. Calls then go only to the servers you add. rexctl config set voice.bundled true brings the bundled server back.
rexctl voice add
Section titled “rexctl voice add”Add standalone LiveKit voice servers next to your Fluxer instance on this machine. Each one gets its own ID, ports, keys and path on your domain, and rexctl registers it with your instance.
rexctl voice add [flags]-
--count intHow many servers to add. The default is
1. -
--dry-runShow what would happen and change nothing.
-
--forceAdd servers even when Fluxer runs through a tunnel.
-
--id stringServer ID, such as fra-server-2.
-
--image stringLiveKit image to run.
-
--ip stringPublic IPv4 address LiveKit gives to clients, also the address the ports bind to when it's on this machine.
-
--ipv6 stringPublic IPv6 address LiveKit gives to clients.
-
--lat floatLatitude of the server.
-
--long floatLongitude of the server.
-
--memory stringMemory limit for the server, such as 2g.
-
--new-region stringCreate a voice region with this ID for the servers.
-
--no-firewallLeave the firewall on this machine alone.
-
--no-ipv6Give clients only the IPv4 address, even when this machine has IPv6.
-
--region stringExisting voice region for the server.
-
--region-name stringName of the new region.
-
--soft-limit intConnections above which placement prefers another server.
-
--tcp-port intTCP port for media.
-
--udp-port intUDP port for media.
rexctl voice hostname
Section titled “rexctl voice hostname”Move a voice server on this machine to a hostname once its DNS record points here. rexctl gets a certificate and updates the server's endpoint on the instance.
rexctl voice hostname <id> <host>rexctl voice join
Section titled “rexctl voice join”Install a standalone LiveKit voice server on this machine and register it with the Fluxer instance at <domain>. Get the token with rexctl voice token on the Fluxer machine, or with Add a voice server in the admin panel. The token works once. rexctl also reads it from FLUXER_VOICE_JOIN_TOKEN or, with --token-stdin, from standard input. The server offers IPv4 and IPv6 when the machine has both. On a machine with only IPv6, pass --hostname with an AAAA record that points here.
rexctl voice join <domain> [token] [flags]-
--dry-runShow what would happen and change nothing.
-
--email stringEmail address for Let's Encrypt notices.
-
--endpoint stringPublic wss:// URL of the server behind your own proxy.
-
--hostname stringHostname for the server's endpoint and certificate.
-
--http-bind stringAddress the port for your own proxy listens on, with --no-edge (default 127.0.0.1).
-
--http-port intPort for your own proxy, with --no-edge.
-
--id stringServer ID, such as fra-server-2.
-
--image stringLiveKit image to run.
-
--ip stringPublic IPv4 address LiveKit gives to clients, also the address the ports bind to when it's on this machine.
-
--ipv6 stringPublic IPv6 address LiveKit gives to clients.
-
--lat floatLatitude of the server.
-
--long floatLongitude of the server.
-
--memory stringMemory limit for the server, such as 2g.
-
--no-edgeStart no edge and publish the server's HTTP port for your own proxy.
-
--no-firewallLeave the firewall on this machine alone.
-
--no-ipv6Give clients only the IPv4 address, even when this machine has IPv6.
-
--region stringExisting voice region for the server.
-
--soft-limit intConnections above which placement prefers another server.
-
--tcp-port intTCP port for media.
-
--token-stdinRead the join token from standard input.
-
--udp-port intUDP port for media.
rexctl voice list
Section titled “rexctl voice list”List voice servers.
rexctl voice list [flags]-
--jsonPrint JSON.
rexctl voice remove
Section titled “rexctl voice remove”Drain, unregister and delete a voice server.
rexctl voice remove [id] [flags]-
--allRemove every voice server and the edge on this machine.
-
--drain-timeout durationHow long to wait for calls to end. The default is
15m0s. -
--nowDon't wait for calls to end.
rexctl voice status
Section titled “rexctl voice status”Show the voice servers on this machine.
rexctl voice status [id]rexctl voice test
Section titled “rexctl voice test”Join a throwaway room on a voice server and report which transports connect. On the Fluxer machine it can test any server of the instance, including servers on other machines.
rexctl voice test [id]rexctl voice token
Section titled “rexctl voice token”Create a join token and print the command that installs a voice server with it. The token works once.
rexctl voice token [flags]-
--expires stringHow long the token works, at most 24h. The default is
1h. -
--hostname stringHostname the server must use.
-
--id stringServer ID.
-
--internal-endpoint stringURL the API uses to connect to the server, such as http://10.0.0.5:7880.
-
--lat floatLatitude of the new region.
-
--long floatLongitude of the new region.
-
--name stringA note for the server.
-
--new-region stringCreate a region with this ID when the server joins.
-
--region stringExisting region for the server.
-
--region-name stringName of the new region.
-
--soft-limit intConnections above which placement prefers another server.
rexctl voice token list
Section titled “rexctl voice token list”List join tokens.
rexctl voice token list [flags]-
--jsonPrint JSON.
rexctl voice token revoke
Section titled “rexctl voice token revoke”Stop a join token from working.
rexctl voice token revoke <token id>