#!/bin/bash # Requires: openssl source ./harbor.cfg config_path="./config" ui_path="./config/ui" db_path="./config/db" tpl_path="./templates" mkdir -p $tpl_path mkdir -p $ui_path $db_path declare -a arr=("$ui_path/env" "$ui_path/app.conf" "$config_path/registry/config.yml" "$db_path/env") for i in "${arr[@]}"; do if [ -e $i ]; then echo "Clearing the configuration file: "$i rm $i fi done echo "appname = registry runmode = dev [lang] types = en-US|zh-CN names = en-US|zh-CN [dev] httpport = 80 [mail] host = $email_server port = $email_server_port username = $email_username password = $email_password from = $email_from" > $ui_path/app.conf echo "Generated configuration file: "$ui_path/app.conf echo "MYSQL_HOST=mysql MYSQL_PORT=3306 MYSQL_USR=root MYSQL_PWD=$db_password REGISTRY_URL=http://registry:5000 CONFIG_PATH=/etc/ui/app.conf HARBOR_REG_URL=$hostname HARBOR_ADMIN_PASSWORD=$harbor_admin_password HARBOR_URL=$hostname AUTH_MODE=$auth_mode LDAP_URL=$ldap_url LDAP_BASE_DN=$ldap_basedn SELF_REGISTRATION=$self_registration LOG_LEVEL=debug" > $ui_path/env echo "Generated configuration file: "$ui_path/env echo "MYSQL_ROOT_PASSWORD=$db_password" > $config_path/db/env echo "Generated configuration file: "$config_path/db/env echo "version: 0.1 log: level: debug fields: service: registry storage: cache: layerinfo: inmemory filesystem: rootdirectory: /storage maintenance: uploadpurging: enabled: false delete: enabled: true http: addr: :5000 secret: placeholder debug: addr: localhost:5001 auth: token: issuer: registry-token-issuer realm: $ui_url/service/token rootcertbundle: /etc/registry/root.crt service: token-service notifications: endpoints: - name: harbor disabled: false url: http://ui/service/notifications timeout: 500 threshold: 5 backoff: 1000" > $config_path/registry/config.yml echo "Generated configuration file: "$config_path/registry/config.yml is_fail=0 if [ $customize_token == "on" ];then if [ -e $ui_path/private_key.pem ]; then echo "clearing the origin private_key.pem in "$ui_pth rm $ui_path/private_key.pem fi openssl genrsa -out $ui_path/private_key.pem 4096 if [ -e $ui_path/private_key.pem ]; then echo "private_key.gem has been generated in "$ui_path else echo "generate private_key.gem fail." is_fail=1 fi if [ -e $config_path/registry/root.crt ]; then echo "clearing the origin root.crt in "$config_path"/registry" rm $config_path/registry/root.crt fi openssl req -new -x509 -key $ui_path/private_key.pem -out $config_path/registry/root.crt -days 3650 \ -subj "/C=$crt_countryname/ST=$crt_state/L=$crt_name/O=$crt_organizationname/OU=$crt_organizationalunitname" if [ -e $config_path/registry/root.crt ]; then echo "root.crt has been generated in "$config_path"/registry" else echo "generate root.crt fail." is_fail=1 fi elif [ $customize_token != "off" ]; then echo "wrong args found in customize_token: "$customize_token is_fail=1 fi if [ $is_fail -eq 0 ];then echo "The configuration files are ready, please use docker-compose to start the service." else echo "some problem occurs." fi