# distops **Repository Path**: dyrnq/distops ## Basic Information - **Project Name**: distops - **Description**: Distops is a collection of tools for operations and maintenance surrounding the Docker registry(CNCF distribution). - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-11 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # distops distribution ## description Distops is a collection of tools for operations and maintenance surrounding the Docker registry(CNCF distribution). ## features - Multi distribution management with UI - Support both private registry Or proxy registry - Embedded Auth server for Multi distribution(registry) - Auth type include None, silly, htpasswd, and token - Support RW, read-only account with ACL Related projects - [multi-registry-cache](https://github.com/dyrnq/mrc) ## build ```bash git clone git@gitee.com:dyrnq/distops.git cd distops ./mvnw clean package -Dmaven.test.skip=true -s ./settings.xml ``` ## run with docker ```bash mkdir /data/distops/persistent_data chown 1000:1000 /data/distops/persistent_data # 产生一个新的jwt secret 替换默认的 IDP32XTulsVIUZU+srFEUC9Lhu1wV+nd8iCJPoPA2zSFVAtWhCgpMEymxy5wFAZKMB9yROX31UjDzjwL66r1RA== docker run -it --rm --entrypoint="" dyrnq/distops:latest bash -c "java -jar /distops.jar cli jwt" docker \ run \ --detach \ --restart always \ --name distops \ --network host \ -e TZ=Asia/Shanghai \ -e SERVER_PORT="8080" \ -e SERVER_SESSION_TIMEOUT="172800" \ -e JWT_SECRET="__REPLACEME__" \ -e JAVA_OPTS="-server -Xms256m -Xms256m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai -Djava.net.preferIPv4Stack=true -Dspring.flyway.enabled=true" \ -v /data/distops/persistent_data:/data \ dyrnq/distops:latest ``` now, you can use browser open http://127.0.0.1:8080, default user password(admin/admin). default database use sqlite. Supports environment variables | Variable Name | Meaning | Default Value | |--------------------------------------|----------------------------------------------|------------------| | SERVER_PORT | Server port | 12680 | | PROJECT_HOME | Data directory | $HOME/apisixWeb | | SPRING_DATABASE_TYPE | Database type (mysql, sqlite, postgresql) | sqlite | | SPRING_DATASOURCE_URL | Database URL | | | SPRING_DATASOURCE_USERNAME | Database username | | | SPRING_DATASOURCE_PASSWORD | Database password | | | JWT_SECRET | jwt secret | | | SEVER_SESSION_TIMEOUT | session timeout | 7200 | ## registry proxy when using registry proxy e.g. `https://registry.k8s.io`, you may need config env `HTTPS_PROXY` and `NO_PROXY`. e.g. ```bash HTTPS_PROXY=http://192.168.66.1:7890 NO_PROXY=127.0.0.1,192.168.66.100 ``` ## screenshot distribution distribution distribution distribution distribution distribution distribution distribution distribution distribution distribution ## ref - [GitHub distribution](https://github.com/distribution/distribution) - [GitHub skopeo](https://github.com/containers/skopeo) - [GitHub regclient](https://github.com/regclient/regclient) - [regclient.org](https://regclient.org) - [CNCF distribution](https://distribution.github.io/distribution/) - [GitHub docker_auth](https://github.com/cesanta/docker_auth) - [Supervisor: A Process Control System](https://supervisord.org/)