initial commit
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.env
|
||||||
17
Dockerfile
Normal file
17
Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# First stage: build the F-Droid repository
|
||||||
|
FROM ubuntu AS build
|
||||||
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get install -y software-properties-common
|
||||||
|
RUN add-apt-repository ppa:fdroid/fdroidserver
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get install -y fdroidserver
|
||||||
|
WORKDIR /fdroid
|
||||||
|
RUN fdroid init -v
|
||||||
|
RUN fdroid update
|
||||||
|
|
||||||
|
# Second stage: serve the /repo directory using Filebrowser
|
||||||
|
FROM filebrowser/filebrowser AS final
|
||||||
|
COPY --from=build /fdroid/ /
|
||||||
|
COPY settings.json /config/settings.json
|
||||||
|
CMD ["--config", "/config/settings.json"]
|
||||||
37
README.md
37
README.md
@@ -1,2 +1,35 @@
|
|||||||
# fdroid-docker-reposerver
|
# F-Droid Repo Server with Filebrowser
|
||||||
F-Droid Repository Server served with Nginx Docker
|
|
||||||
|
This Dockerfile creates a Docker image that deploys an F-Droid repository server using Alpine Linux and serves the `/repo` directory using Filebrowser with authentication.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The Dockerfile consists of two stages:
|
||||||
|
|
||||||
|
1. **Build stage**: In this stage, the F-Droid repository is built using Alpine Linux. The necessary packages and tools for the F-Droid server and Android SDK are installed, and the F-Droid repository is initialized and updated.
|
||||||
|
|
||||||
|
2. **Filebrowser stage**: In this stage, the `/repo` directory from the build stage is served using Filebrowser with authentication. The `settings.json` file is used to configure Filebrowser, and the authentication is handled using a `users.json` file.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
1. Create a .env file specifying the Timezone (E.g. TZ=Europe/Rome)
|
||||||
|
|
||||||
|
2. Create a `settings.json` file with the desired Filebrowser settings, including the authentication method and the path to the `users.json` file.
|
||||||
|
|
||||||
|
3. Create a `users.json` file with the desired user credentials and permissions.
|
||||||
|
|
||||||
|
4. Place your custom apps (APK files) in the `/repo` directory.
|
||||||
|
|
||||||
|
5. Build the Docker image using the provided Dockerfile: `docker build -t fdroid-repo-server .`
|
||||||
|
|
||||||
|
6. Run a container using the built image: `docker run -d -p 80:80 --name fdroid-repo-server fdroid-repo-server`
|
||||||
|
|
||||||
|
7. Access the Filebrowser web interface at `http://localhost` (or the appropriate IP address) and log in with the credentials specified in the `users.json` file.
|
||||||
|
|
||||||
|
8. Share the F-Droid repository URL with your users. The URL should be in the format `http://<your-server-ip>/repo`.
|
||||||
|
|
||||||
|
9. Default username and password is admin/admin (please change the password at first configuration)
|
||||||
|
|
||||||
|
## Customization
|
||||||
|
|
||||||
|
You can modify the Dockerfile and the `settings.json` and `users.json` files according to your specific requirements. For more information on Filebrowser settings and authentication methods, refer to the [Filebrowser documentation](https://filebrowser.org/configuration/authentication-method).
|
||||||
17
docker-compose-deploy.yaml
Normal file
17
docker-compose-deploy.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
repo:
|
||||||
|
image: dnviti/fdroid-reposerver
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- TZ=Europe/Rome
|
||||||
|
command: [ "--config", "/config/settings.json" ]
|
||||||
|
volumes:
|
||||||
|
- repo:/fdroid/repo
|
||||||
|
- fbdb:/database
|
||||||
|
ports:
|
||||||
|
- 8083:80
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
fbdb:
|
||||||
|
repo:
|
||||||
12
docker-compose.yaml
Normal file
12
docker-compose.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
repo:
|
||||||
|
image: dnviti/fdroid-reposerver
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- TZ=Europe/Rome
|
||||||
|
ports:
|
||||||
|
- 8083:80
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
12
settings.json
Normal file
12
settings.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"port": 80,
|
||||||
|
"baseURL": "",
|
||||||
|
"address": "0.0.0.0",
|
||||||
|
"log": "stdout",
|
||||||
|
"database": "/database/filebrowser.db",
|
||||||
|
"root": "/fdroid/repo",
|
||||||
|
"auth": {
|
||||||
|
"method": "json",
|
||||||
|
"file": "/config/users.json"
|
||||||
|
}
|
||||||
|
}
|
||||||
20
users.json
Normal file
20
users.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"username": "admin",
|
||||||
|
"password": "$2a$10$9hR3U9G8cPGg2f6jP0U8UO9hJ1z7E5aZ6d8N7nG9vWUO9hJ1z7E5a",
|
||||||
|
"scope": "/",
|
||||||
|
"locale": "en",
|
||||||
|
"viewMode": "mosaic",
|
||||||
|
"perm": {
|
||||||
|
"admin": true,
|
||||||
|
"execute": true,
|
||||||
|
"create": true,
|
||||||
|
"rename": true,
|
||||||
|
"modify": true,
|
||||||
|
"delete": true,
|
||||||
|
"share": true,
|
||||||
|
"download": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
Reference in New Issue
Block a user