services: megarepo: image: bsnsoft/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_SECURITY_JWT_SECRET: ${MEGAREPO_JWT_SECRET} MEGAREPO_DATA_DIRECTORY: /opt/megarepo/data 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} volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U megarepo"] restart: unless-stopped volumes: megarepo-data: postgres-data:
POSTGRES_PASSWORD=your-secure-db-password MEGAREPO_JWT_SECRET=random-string-at-least-32-characters-long
docker compose up -d
<settings> <mirrors> <mirror> <id>megarepo</id> <mirrorOf>*</mirrorOf> <url>http://megarepo.example.com:8080/repository/maven-public/</url> </mirror> </mirrors> <servers> <server> <id>megarepo-releases</id> <username>deployer</username> <password>your-password</password> </server> <server> <id>megarepo-snapshots</id> <username>deployer</username> <password>your-password</password> </server> </servers> </settings>
<distributionManagement> <repository> <id>megarepo-releases</id> <url>http://megarepo.example.com:8080/repository/maven-releases/</url> </repository> <snapshotRepository> <id>megarepo-snapshots</id> <url>http://megarepo.example.com:8080/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>
// Resolve dependencies repositories { maven { url = uri("http://megarepo.example.com:8080/repository/maven-public/") credentials { username = "deployer" password = "your-password" } } } // Publish artifacts publishing { repositories { maven { name = "megarepo" url = uri("http://megarepo.example.com:8080/repository/maven-releases/") credentials { username = "deployer" password = "your-password" } } } }
# Resolve packages through MegaRepo registry=http://megarepo.example.com:8080/repository/npm-public/ # Authenticate for publishing to the hosted repo //megarepo.example.com:8080/repository/npm-hosted/:_authToken=your-jwt-token
[global] index-url = http://megarepo.example.com:8080/repository/pypi-public/simple/ trusted-host = megarepo.example.com
[distutils] index-servers = megarepo [megarepo] repository = http://megarepo.example.com:8080/repository/pypi-hosted/ username = deployer password = your-password
{
"insecure-registries": ["megarepo.example.com:8080"]
}
# Log in docker login megarepo.example.com:8080 # Push an image docker tag myimage:latest megarepo.example.com:8080/myimage:latest docker push megarepo.example.com:8080/myimage:latest # Pull through the proxy (Docker Hub cache) docker pull megarepo.example.com:8080/library/alpine:latest