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
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_USER=
DB_PASSWORD=
JWT_SECRET=
JWT_ISSUER=
JWT_VALIDITY_IN_MIN=
# Basic authentication to issue JWT tokens
BASIC_USERNAME=
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 ###
.env
persistence/
configuration.toml
.db
configuration.toml

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
ARG DB_USER
ARG DB_PASSWORD
ENV GITHUB_ACTOR $GITHUB_ACTOR
ENV GITHUB_TOKEN $GITHUB_TOKEN
ARG JWT_SECRET
ARG JWT_ISSUER
ARG JWT_VALIDITY_IN_MIN
WORKDIR /app
COPY . .
RUN gradle publish --no-daemon
ARG BASIC_USERNAME
ARG BASIC_PASSWORD
# Build the runtime container
FROM eclipse-temurin:latest
ENV CONFIG_FILE_PATH $CONFIG_FILE_PATH
ENV DB_URL $DB_URL
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
WORKDIR /app
COPY --from=build /app/build/libs/revanced-api-*.jar revanced-api.jar
CMD java -jar revanced-api.jar $COMMAND

View File

@ -1,23 +1,13 @@
version: "3.8"
services:
revanced-api:
container_name: revanced-api
image: ghcr.io/revanced/revanced-api:latest
volumes:
- /data/revanced-api/persistence:/persistence
- /data/revanced-api/configuration.toml:/configuration.toml
- /data/revanced-api/persistence:/app/persistence
- /data/revanced-api/.env:/app/.env
- /data/revanced-api/configuration.toml:/app/configuration.toml
environment:
- CONFIG_FILE_PATH=configuration.toml
- 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=
- COMMAND=start
ports:
- 127.0.0.1:8080:8000
- localhost:8080:8080
restart: unless-stopped

View File

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

View File

@ -36,9 +36,7 @@ import java.io.File
fun Application.configureDependencies() {
val globalModule = module {
single {
Dotenv.configure()
.systemProperties()
.load()
Dotenv.configure().load()
}
factory { params ->
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) {
bearer {
loadTokens {