143 lines
3.4 KiB
Text
143 lines
3.4 KiB
Text
---
|
|
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
|
|
```
|