DeepFellow Infra
This is a guide to local installation. You can also setup DeepFellow Infra hosted on AWS.
Installation
Install and configure DeepFellow Infra:
$ deepfellow infra install
💡 Installing DeepFellow Infra.
❓ Provide a Name for this Infra (infra):
❓ Provide a URL for this Infra (http://infra:8086):
❓ Provide a docker network name (deepfellow-infra-net):
❓ Is it safe to print API keys here? [y/n] (n):
💡 Configuration of Admin API Key
key required for an admin to identify in DeepFellow Infra.
💡 Configuration of Infra API Key
key needed for communication between DeepFellow Infra and DeepFellow Server.
💡 Configuration of Mesh Key
key needed by other DeepFellow Infra to attach to this DeepFellow Infra and thus extend the Mesh.You will be offered to optionally enter API Keys for various services you might want to use:
❓ Provide an optional Hugging Face Token (hf***bc):
❓ Provide an optional Civitai Token (13***ff):- Hugging Face - Get Hugging Face API Key
- Civitai - Get Civitai API Key models, set
DF_CIVITAI_TOKENas well.
You can skip these if you want. You can always configure your envs later.
Lastly, successful installation will be confirmed:
💡 Generated /home/mchambers/.deepfellow/infra/.env.
💡 Updated /home/johndoe/.deepfellow/config.
💡 Updated /home/johndoe/.deepfellow/secrets.
💡 Saved Docker Compose configuration to /home/johndoe/.deepfellow/infra/compose.yaml
💡 Pulling docker image(s).
✅ DeepFellow Infra installed.
To start the docker image - `deepfellow infra start`.
For info about installation - `deepfellow infra info`.Non-Interactive Installation
For scripting and automation, pass --non-interactive with the required options:
deepfellow --non-interactive infra installThe installer applies default values for all prompts and auto-generates API keys. To customize any value after installation, use deepfellow infra env set. See Envs for the full list of variables.
If Docker runs as root on the host, the installer warns about the security risk and asks you to confirm. The default answer is no. In non-interactive mode, the installation stops after the warning. To install Infra on such a host anyway, add --allow-rootful:
deepfellow --non-interactive infra install --allow-rootfulTo avoid the warning, run Docker in rootless mode.
Published Port
By default, DeepFellow Infra publishes its port, 8086, on all network interfaces of the host. Docker manages its own firewall rules for published ports, so a host firewall such as ufw doesn't block them. The installer warns you about it:
⚠️ DeepFellow Infra port is published on all network interfaces, and Docker bypasses host firewalls such as ufw. Set a bind address (e.g. 127.0.0.1) to restrict it.To publish the port on one address only, pass --bind-address with an IPv4 or IPv6 address:
deepfellow infra install --bind-address 127.0.0.1The installer stores the address in .env as DF_INFRA_BIND_ADDRESS and writes an IPv6 address in brackets, for example [::1]. A reinstall keeps the stored address. To publish the port on all interfaces again, pass --bind-address "". An empty value covers both IPv4 and IPv6. The installer also shows the warning for 0.0.0.0 and ::, but 0.0.0.0 publishes the port on IPv4 interfaces only.
With a bind address, the CLI reaches Infra at that address instead of localhost, for example in DF_INFRA_EXTERNAL_URL and in the address deepfellow infra start prints. DeepFellow Server reaches Infra over the Docker network, at http://infra:8086, so the bind address doesn't affect it.
To change the bind address of an existing install, set DF_INFRA_BIND_ADDRESS with deepfellow infra env set and confirm the restart it offers. The command checks the address and writes an IPv6 address in brackets. On an install made with an earlier CLI version, run deepfellow infra update first. See Published Ports.
After Installation
Start
$ deepfellow infra start
💡 Starting DeepFellow Infra
✅ DeepFellow Infra started.Install First Model
To install a model, you need to install a service first. Type in your terminal:
deepfellow infra service install ollama
deepfellow infra model install ollama gemma3:1bInstall bigger models according to your available VRAM. See Hardware Requirements for model recommendations by VRAM tier.
After successful installation, you will see:
✅ Service ollama installed.
✅ Model gemma3:1b installed.You can install services and models using Web Panel as well. See DeepFellow Infra Web Panel guide for details.
The ollama service runs locally and needs no API key. To install a remote service, pass the provider API key with the --api-key flag:
deepfellow infra service install claude --api-key ANTHROPIC_API_KEY
deepfellow infra service install google --api-key GEMINI_API_KEY
deepfellow infra service install openai --api-key OPENAI_API_KEYWhen you omit --api-key for a service that requires one, the CLI prompts you for the key.
To list the services installed on an Infra instance, run:
deepfellow infra service listThe command shows only installed services. For each one it prints the id, type, instance, description, and whether the backend is downloaded:
$ deepfellow infra service list
💡 id: ollama
type: ollama
instance: default
description: Self-hosted easy to use LLM model runner.
downloaded: TrueWhen no services are installed, the command prints No services installed.
To target a specific instance, pass --url. Otherwise the command resolves the instance from the DF_INFRA_EXTERNAL_URL environment variable or prompts you for it:
deepfellow infra service list --url http://localhost:8086To uninstall model you can type:
deepfellow infra model uninstall ollama gemma3:1bIf you have many installed models in one of the services you can simply uninstall the service:
deepfellow infra service uninstall ollamaAll models in the service will be uninstalled automatically.
Connect More Infras
You can build a Mesh by connecting your Infras in parent-child relations, forming a tree of instances.
Repeat the previous installation and configuration steps for each machine you dedicate to be DeepFellow Infra.
Then, to connect two Infras, use the following command on one of them:
deepfellow infra connect DF_INFRA_MESH_URL DF_MESH_KEYTo disconnect them:
deepfellow infra disconnectThe child Infra connects to the parent's published port. If the parent has a bind address, the child reaches the parent only through that address. For example, a parent on 127.0.0.1 accepts no children from other hosts.
See Connecting Infras into a Mesh for a worked example that connects a parent and a child Infra.
Configure SSL
You can setup the SSL certificates automatically by typing:
deepfellow infra ssl-onThis command will create and setup a certificate for you for default port 443. You can use your own key file and cert file as well as customize the port and the URL at which Infra with SSL is available:
deepfellow infra ssl-on [SSL_KEY_PATH] [SSL_CERT_PATH] --port [SSL_PORT] --url [SSL_INFRA_URL]Alternatively, you can expose given DeepFellow Infra through an nginx reverse proxy that handles SSL/TLS termination.
Envs
See Configuration for every variable DeepFellow Infra reads, with its config.json field and default value. See Environment Variables (CLI) to inspect and change them from the command line.
Restart
To apply a configuration change or recover the stack without running two commands, restart DeepFellow Infra. The restart command stops the whole Docker Compose stack, then starts it again.
$ deepfellow infra restart
💡 Restarting DeepFellow Infra
💡 DeepFellow Infra started on http://localhost:8086To restart an installation in a non-default location, pass --directory (or --dir).
Uninstall
See Uninstall to remove DeepFellow Infra.
We use cookies on our website. We use them to ensure proper functioning of the site and, if you agree, for purposes such as analytics, marketing, and targeting ads.