build: Update dockerfile and env vars

This commit is contained in:
oSumAtrIX 2024-06-05 14:47:55 +02:00
parent 0904390481
commit 9d816223fb
No known key found for this signature in database
GPG Key ID: A9B3094ACDB604B4
6 changed files with 34 additions and 54 deletions

View File

@ -1,15 +1,20 @@
# File path to store configurations for the API
CONFIG_FILE_PATH=configuration.toml CONFIG_FILE_PATH=configuration.toml
GITHUB_TOKEN= # Optional token for API calls to the backend
BACKEND_API_TOKEN=
# An option URL to the old API to proxy for migration purposes
OLD_API_URL=
# Database connection details
DB_URL=jdbc:h2:./persistence/revanced-api DB_URL=jdbc:h2:./persistence/revanced-api
DB_USER= DB_USER=
DB_PASSWORD= DB_PASSWORD=
JWT_SECRET= # Basic authentication to issue JWT tokens
JWT_ISSUER=
JWT_VALIDITY_IN_MIN=
BASIC_USERNAME= BASIC_USERNAME=
BASIC_PASSWORD= BASIC_PASSWORD=
OLD_API_URL= # JWT configuration for authenticated API endpoints
JWT_SECRET=
JWT_ISSUER=
JWT_VALIDITY_IN_MIN=

3
.gitignore vendored
View File

@ -38,5 +38,4 @@ out/
### Project ### ### Project ###
.env .env
persistence/ persistence/
configuration.toml configuration.toml
.db

View File

@ -1,31 +1,19 @@
FROM azul/zulu-openjdk:latest # Build the application
FROM gradle:latest AS build
ARG CONFIG_FILE_PATH ARG GITHUB_ACTOR
ARG GITHUB_TOKEN
ARG DB_URL ENV GITHUB_ACTOR $GITHUB_ACTOR
ARG DB_USER ENV GITHUB_TOKEN $GITHUB_TOKEN
ARG DB_PASSWORD
ARG JWT_SECRET WORKDIR /app
ARG JWT_ISSUER COPY . .
ARG JWT_VALIDITY_IN_MIN RUN gradle publish --no-daemon
ARG BASIC_USERNAME # Build the runtime container
ARG BASIC_PASSWORD FROM eclipse-temurin:latest
ENV CONFIG_FILE_PATH $CONFIG_FILE_PATH WORKDIR /app
COPY --from=build /app/build/libs/revanced-api-*.jar revanced-api.jar
ENV DB_URL $DB_URL CMD java -jar revanced-api.jar $COMMAND
ENV DB_USER $DB_USER
ENV DB_PASSWORD $DB_PASSWORD
ENV JWT_SECRET $JWT_SECRET
ENV JWT_ISSUER $JWT_ISSUER
ENV JWT_VALIDITY_IN_MIN $JWT_VALIDITY_IN_MIN
ENV BASIC_USERNAME $BASIC_USERNAME
ENV BASIC_PASSWORD $BASIC_PASSWORD
COPY build/libs/revanced-api-*.jar revanced-api.jar
CMD java -jar revanced-api.jar start

View File

@ -1,23 +1,13 @@
version: "3.8"
services: services:
revanced-api: revanced-api:
container_name: revanced-api container_name: revanced-api
image: ghcr.io/revanced/revanced-api:latest image: ghcr.io/revanced/revanced-api:latest
volumes: volumes:
- /data/revanced-api/persistence:/persistence - /data/revanced-api/persistence:/app/persistence
- /data/revanced-api/configuration.toml:/configuration.toml - /data/revanced-api/.env:/app/.env
- /data/revanced-api/configuration.toml:/app/configuration.toml
environment: environment:
- CONFIG_FILE_PATH=configuration.toml - COMMAND=start
- GITHUB_TOKEN=
- DB_URL=jdbc:h2:./persistence/revanced-api
- DB_USER=
- DB_PASSWORD=
- JWT_SECRET=
- JWT_ISSUER=
- JWT_VALIDITY_IN_MIN=5
- BASIC_USERNAME=
- BASIC_PASSWORD=
ports: ports:
- 127.0.0.1:8080:8000 - localhost:8080:8080
restart: unless-stopped restart: unless-stopped

View File

@ -19,7 +19,7 @@ internal object StartAPICommand : Runnable {
description = ["The host address to bind to."], description = ["The host address to bind to."],
showDefaultValue = CommandLine.Help.Visibility.ALWAYS, showDefaultValue = CommandLine.Help.Visibility.ALWAYS,
) )
private var host: String = "0.0.0.0" private var host: String = "127.0.0.1"
@CommandLine.Option( @CommandLine.Option(
names = ["-p", "--port"], names = ["-p", "--port"],

View File

@ -36,9 +36,7 @@ import java.io.File
fun Application.configureDependencies() { fun Application.configureDependencies() {
val globalModule = module { val globalModule = module {
single { single {
Dotenv.configure() Dotenv.configure().load()
.systemProperties()
.load()
} }
factory { params -> factory { params ->
val defaultRequestUri: String = params.get<String>() val defaultRequestUri: String = params.get<String>()
@ -80,7 +78,7 @@ fun Application.configureDependencies() {
) )
} }
get<Dotenv>()["GITHUB_TOKEN"]?.let { get<Dotenv>()["BACKEND_API_TOKEN"]?.let {
install(Auth) { install(Auth) {
bearer { bearer {
loadTokens { loadTokens {