Запуск¶
Запуск с помощью Docker Compose¶
-
Зайдите на сервер.
ssh <your-user>@<your-server> -
Создайте директорию для установки AppSec.Registry (рекомендуется — /opt/appsec-registry/).
sudo mkdir /opt/appsec-registry -
Перейдите в директорию AppSec.Registry.
cd /opt/appsec-registry -
Создайте файл docker-compose.yaml.
sudo touch docker-compose.yaml -
Наполните файл docker-compose.yaml содержанием:
services: registry-core: image: registry.appsec.global/appsec-registry/core:latest container_name: registry-core volumes: - ./app:/app/appsecregistry ports: - 8081:8081 restart: always networks: - internal-net registry-ui: image: registry.appsec.global/appsec-registry/ui:latest container_name: registry-ui volumes: - ./nginx/logs:/var/log/nginx - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/default.conf:/etc/nginx/conf.d/default.conf # - Если у вас будет использоваться ssl раскомментируйте строку # - ./nginx/ssl:/etc/ssl/certs/ssl-cert:ro ports: - 443:443/tcp networks: - internal-net restart: always networks: internal-net: driver: "bridge" ipam: driver: default config: - subnet: 172.24.0.0/24 -
Создайте файл директории и файлы для работы
registry-uiиregistry-core:sudo mkdir app && \ sudo mkdir nginx && \ sudo mkdir -p nginx/logs nginx/ssl && \ sudo touch nginx/nginx.conf && \ sudo touch nginx/default.conf -
Наполните файл nginx/nginx.conf содержанием:
worker_processes auto; error_log /var/log/nginx/error.log notice; pid /tmp/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" $upstream_response_time'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; include /etc/nginx/conf.d/*.conf; } -
Наполните файл nginx/default.conf содержанием:
server { listen 443; # - Если у вас будет использоваться ssl раскомментируйте строки и закомментируйте "listen 443;" # listen 443 ssl; # ssl_certificate /etc/ssl/certs/ssl-cert/fullchain1.pem; # ssl_certificate_key /etc/ssl/certs/ssl-cert/privkey1.pem; server_name localhost; ignore_invalid_headers off; proxy_connect_timeout 2400s; proxy_send_timeout 2400s; proxy_read_timeout 2400s; send_timeout 2400s; client_max_body_size 10240m; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; location / { proxy_connect_timeout 2400s; proxy_send_timeout 2400s; proxy_read_timeout 2400s; send_timeout 2400s; client_max_body_size 10240m; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; root /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html?$args; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; add_header X-Frame-Options SAMEORIGIN; } location /api { proxy_connect_timeout 2400s; proxy_send_timeout 2400s; proxy_read_timeout 2400s; send_timeout 2400s; client_max_body_size 10240m; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; add_header X-Frame-Options SAMEORIGIN; proxy_pass http://registry-core:8081/service; } location /repository { proxy_connect_timeout 2400s; proxy_send_timeout 2400s; proxy_read_timeout 2400s; send_timeout 2400s; client_max_body_size 10240m; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; add_header X-Frame-Options SAMEORIGIN; proxy_pass http://registry-core:8081/repository; } } -
Если у вас есть сертификаты, положите два файла, содержащие сертификат и ключ, по этому пути:
nginx/ssl/fullchain1.pem nginx/ssl/privkey1.pem -
Создайте файл .env и наполните его содержанием:
# Выключает анонимный доступ ANONYMOUSCONFIGURATION_ENABLE=disable # Задаёт инициализирующий пароль NEXUS_SECURITY_INITIAL_PASSWORD=admin1234 # Убирает генерацию пароля NEXUS_SECURITY_RANDOMPASSWORD=false # Тут вы можете выдать больше ресурсов процессу INSTALL4J_ADD_VM_PARAMS=-Xms16G -Xmx16G -XX:MaxDirectMemorySize=10000m -Djava.util.prefs.userRoot=/nexus-data/javapref -
Выдайте правильные права на директории и файлы:
sudo chown -R 200:200 app sudo chown -R 101:101 nginx -
Загрузите образы в локальный docker-репозиторий:
a. Авторизуйтесь в репозитории registry.appsec.global (
<user-name>в команде ниже — имя пользователя).sudo docker login registry.appsec.global -u <user-name>b. Скачайте образы.
sudo docker-compose pull -
Запустите контейнеры AppSec.Registry.
sudo docker-compose up -d -
Перейдите в пользовательский интерфейс AppSec.Registry по адресу хоста (например,
http://<AppSec.Registry_IP_address>:443/).Логин пользователя системы по умолчанию: admin, пароль: admin1234.