---
description: 'How to Create Your Own F-Droid Repo to Share as a Content Pack'
sidebar_position: 2
---

# F-Droid Repo

You can build your own curated F-Droid repo using your computer's
terminal. Once set up, users can connect their F-Droid app to your Butter
Box and start downloading apps.



### Step 1: Install F-Droid Server Tools

Before you begin, you need to install a tool called **fdroidserver**. This
helps you create and manage your app store.

**On Mac (using Homebrew):**

```
 brew install fdroidserver 
```

**On Linux (Debian/Ubuntu):**

```
 sudo apt install fdroidserver 
```

### Step 2: Check that it's installed correctly

After installation, run this command:

```
 fdroid version
```

If everything is working, you will see a version number printed on the
screen.

### Step 3: Create Your Repo Folder

You need to create the folder where you will save the repo files in your
computer, choose a name that aligns with the project or purpose of the apps
in it, and replace my-fdroid-repo for that name in the command.

```
mkdir -p ~/my-fdroid-repo
```

```
cd ~/my-fdroid-repo
```

### Step 4: Initialize the repo

```
fdroid init
```

This creates the following directories in your repo file:

```
Config.yml 
```

```
repo/
```

```
metadata/
```

### Step 5: Add your APKs

Copy your signed APKs into the repo/ folder. Ensure you only use apps from
trusted sources like the official F-Droid library or verified developers.

**Security Note:** Avoid downloading APKs from "mirror" sites or unknown sources, as they can contain malware or trackers that compromise your users' privacy.

```
cp /path/to/your/*.apk repo/
```

Example:

```
cp ~/Downloads/myapp.apk repo/
```

### Step 6: Generate (and Update) the Repository Index

Every time you add a new APK or a new version of an app to your repo/
folder, you must run the following command to "publish" those changes:

```
fdroid update --create-metadata
```

What this command does:

* **Scans APKs:** It reads the new files in your repo/ folder.
* **Generates Metadata:** It creates YAML files containing the app's name,
  version, and permissions.
* **Creates index.v1.jar:** This is the "catalog" file that the F-Droid app
  downloads to see what is available.
* **Signs the Repository:** It uses your secret key to sign the index,
  proving to the Android app that the files haven't been tampered with.

### Step 7: Test your Repo locally

To test your repo locally and ensure everything works before you share it on
the Butter Box, you can serve its content locally and add it to F-Droid
using a URL.

```
cd repo
```

```
python3 -m http.server 8000
```

Once your repo is live, open the F-Droid app on your device and navigate to **Settings > Repositories > "+"**. Select **"Enter repository URL manually"** to add your new source.

Adding the repo manually allows you to verify the user experience by
checking:

* **App Visibility:** Are all your apps appearing in the list?
* **Visual Assets:** Are icons and screenshots displaying correctly?
* **Categorization:** Are apps appearing in the correct sections (e.g.,
  Internet, Security)?
* **Functionality:** Do the downloads and installations complete without
  errors?
* **Metadata:** Does the version number and description match your `repo/`
  files?



Your repo will be available at:

`http://YOUR-IP:8000/repo`



**Find your IP:**

#### macOS:

```
ipconfig getifaddr en0
```

#### Linux:

```
hostname -I
```
