Docker Compose
services:
megarepo:
image: git.bsnsoft.de:5555/megarepo/app-megarepo:latest
ports: ["8080:8080"]
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/megarepo?stringtype=unspecified
SPRING_DATASOURCE_USERNAME: megarepo
SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD:-megarepo}
MEGAREPO_SECURITY_JWT_SECRET: ${MEGAREPO_JWT_SECRET:-change-me-in-production}
MEGAREPO_DATA_DIRECTORY: /opt/megarepo/data
MEGAREPO_BLOB_STORES_DEFAULT_PATH: /opt/megarepo/data/blobs/default
volumes: ["megarepo-data:/opt/megarepo/data"]
depends_on:
db: { condition: service_healthy }
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: megarepo
POSTGRES_USER: megarepo
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-megarepo}
volumes: ["postgres-data:/var/lib/postgresql/data"]
healthcheck:
test: ["CMD-SHELL", "pg_isready -U megarepo"]
interval: 5s
retries: 5
restart: unless-stopped
volumes:
megarepo-data:
postgres-data:
docker compose up -d
Helm / Kubernetes
helm install megarepo ./helm/megarepo \
--set postgresql.auth.password=<db-password> \
--set env.MEGAREPO_SECURITY_JWT_SECRET=<jwt-secret>
Bare Metal
java --enable-preview -jar megarepo-app.jar \
--spring.datasource.url=jdbc:postgresql://localhost:5432/megarepo?stringtype=unspecified \
--spring.datasource.username=megarepo \
--spring.datasource.password=<password> \
--megarepo.security.jwt.secret=<jwt-secret>
|
Default |
|
megarepo.security.jwt.secret | -- | |
megarepo.security.jwt.access-token-expiry | 30m | |
megarepo.security.jwt.refresh-token-expiry | 7d | |
megarepo.security.default-admin-password | admin123 | |
megarepo.data-directory | ./data | |
megarepo.blob-stores.default-path | ./data/blobs/default | |
megarepo.proxy.connect-timeout | 10s | |
megarepo.proxy.read-timeout | 30s | |
spring.servlet.multipart.max-file-size | 1GB | |
megarepo.license.path | ./megarepo.license | |
| Format | Endpoint |
| Maven / npm / PyPI / Raw | /repository/{name}/ |
| Docker | /v2/ |
TOKEN=$(curl -s -X POST http://localhost:8080/api/v1/auth/login \
-H 'Content-Type: application/json' \
-d '{"username":"admin","password":"admin123"}' | jq -r '.accessToken')
curl -X POST http://localhost:8080/api/v1/security/users \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"userId": "deployer",
"firstName": "CI",
"lastName": "Deployer",
"email": "deployer@example.com",
"password": "s3curePassw0rd",
"status": "ACTIVE",
"roles": ["nx-anonymous"]
}'
docker compose pull megarepo
docker compose up -d megarepo
|
|
Port 8080 was already in use |
|
Unable to obtain connection from database |
|
Migration checksum mismatch |
|
Read timed out ... remote repository |
|
Failed to initialize blob store |
|
| OutOfMemoryError |
" data-de="JAVA_OPTS=\"-Xmx1g\" setzen"> |