RegistryAdmin เป็นเครื่องมือ UI ของรีจิสทรีนักเทียบท่าที่ช่วยให้ผู้ใช้สามารถจัดการการเข้าถึงและรายการของรีจิสทรีนักเทียบท่าส่วนตัว โดยมีอินเทอร์เฟซผู้ใช้บนเว็บสำหรับจัดการที่เก็บข้อมูล รูปภาพ และการเข้าถึงของผู้ใช้ และอนุญาตให้ผู้ใช้ตรวจสอบสิทธิ์โดยใช้ password
ผ่านใดก็ได้ เป้าหมายหลักของโปรเจ็กต์คือการจัดเตรียม API ระดับสูงสำหรับจัดการการเข้าถึงของผู้ใช้ไปยังรีจิสทรีส่วนตัว และเพื่อจำกัดการดำเนินการของผู้ใช้ (เช่น การพุชและดึง) สำหรับพื้นที่เก็บข้อมูลเฉพาะโดยอิงตามอิมเมจรีจิสทรี Docker ส่วนตัวอย่างเป็นทางการ สิ่งนี้มีประโยชน์สำหรับเจ้าของรีจิสทรีที่ต้องการควบคุมรีจิสทรีของตนได้มากขึ้น และผู้ที่ต้องการจัดการการเข้าถึงรีจิสทรีได้ง่ายขึ้น
ส่วนต่อประสานผู้ใช้บนเว็บที่สร้างขึ้นด้วยเฟรมเวิร์ก React-Admin และส่วนประกอบ MUI
pull
/ push
) สำหรับรูปแบบการตรวจสอบ token
) RegistryAdmin เป็นเครื่องมือที่ทำงานร่วมกับรีจิสทรี Docker ส่วนตัว และใช้ V2 API ของรีจิสทรีเพื่อสื่อสารกับรีจิสทรี มีจุดสิ้นสุด HTTP ที่ใช้ในการตรวจสอบสิทธิ์ผู้ใช้โดยใช้โทเค็นและเพื่อตรวจสอบสิทธิ์การเข้าถึง ในการใช้ RegistryAdmin กับรีจิสทรี จะต้องกำหนดค่ารีจิสทรีให้รองรับการตรวจสอบสิทธิ์แบบโทเค็น ซึ่งจะทำให้ผู้ใช้สามารถได้รับหรือจำกัดการเข้าถึงการดำเนินการบางอย่าง (เช่น pull
หรือ push
) ตามโทเค็นการตรวจสอบสิทธิ์
# in registry config file
...
auth :
token :
realm : https://{registry-admin-host}/api/v1/registry/auth
service : container_registry_service_name
issuer : registry_token_issuer_name
rootcertbundle : /certs/cert.crt # path to certificate bundle
คุณสามารถใช้รูปแบบการตรวจสอบสิทธิ์ htpasswd
ได้ แต่ด้วยวิธีนี้ คุณสามารถจัดการได้เฉพาะผู้ใช้เท่านั้น และไม่จำกัดการเข้าถึงที่เก็บข้อมูลโดยผู้ใช้บางราย คุณลักษณะนี้ใช้ได้เฉพาะเมื่อใช้การตรวจสอบสิทธิ์แบบโทเค็นเท่านั้น
เพื่อปรับปรุงประสบการณ์ผู้ใช้ด้วยคุณลักษณะต่างๆ เช่น การเรียงลำดับ การค้นหา และการเติมข้อความอัตโนมัติ RegistryAdmin มีระบบจัดเก็บข้อมูลแบบฝังที่ซิงโครไนซ์กับข้อมูลในรีจิสทรี นี่เป็นสิ่งจำเป็นเพื่อหลีกเลี่ยงขีดจำกัดของ API การค้นหา (แค็ตตาล็อก) ที่เปิดเผยโดย API รีจิสทรี เนื่องจากฟังก์ชันการค้นหาอนุญาตให้ใช้การแบ่งหน้าด้วยเคอร์เซอร์เท่านั้น และไม่รองรับการค้นหาด้วยรายการพื้นที่เก็บข้อมูล แอปนี้ยังมีตัวรวบรวมขยะภายในเพื่อตรวจสอบความสอดคล้องของข้อมูลในที่เก็บข้อมูลแบบฝัง
สำหรับการเปลี่ยนแปลงที่จับได้ในรีจิสทรี คุณควรกำหนดค่าการแจ้งเตือนรีจิสทรีให้ส่งไปยังแอป RegistryAdmin
# in registry config file
...
notifications :
events :
includereferences : true
endpoints :
- name : ra-listener
disabled : false
url : http://{registry-admin-host}/api/v1/registry/events
headers :
Authorization : [ Basic Y2xpZW50MDg6Y0t1cnNrQWdybzA4 ]
timeout : 1s
threshold : 5
backoff : 3s
ignoredmediatypes :
- application/octet-stream
ignore :
mediatypes :
- application/octet-stream
การเข้าถึง RegistryAdmin UI ตามบทบาทของผู้ใช้:
Admin
- สิทธิ์เต็มรูปแบบในการอ่านและเขียนสำหรับผู้ใช้ การเข้าถึง และรายการพื้นที่เก็บข้อมูลManager
- สิทธิ์ที่จำกัดในการเรียกดูรายการเข้าถึงและรายการเก็บข้อมูลUser
- สามารถเรียกดูรายการที่เก็บที่กำหนดเท่านั้นRegistryAdmin แจกจ่ายเป็นไบนารีขนาดเล็กในตัวเองและอิมเมจนักเทียบท่า ไบนารี่รองรับสถาปัตยกรรมหลายตัวและระบบปฏิบัติการหลายระบบ รวมถึง linux_x86_64, linux_arm64, linux_arm, macos_x86_64, macos_arm64 และ windows_x86_64 อิมเมจนักเทียบท่ารองรับสถาปัตยกรรม linux_x86_64, linux_arm64 และ linux_arm
เวอร์ชันเสถียรล่าสุดมี :vX.YZ docker tag (พร้อม :latest alias) และต้นแบบปัจจุบันมี :master tag
ในการเริ่มต้น คุณจะต้องตั้งค่าพารามิเตอร์ที่จำเป็นในไฟล์ เขียนนักเทียบท่า หรือใช้แฟล็กบรรทัดคำสั่ง คุณสามารถดูตัวอย่างการกำหนดค่าต่างๆ ได้ในโฟลเดอร์ _examples
เมื่อคุณเริ่ม RegistryAdmin เป็นคอนเทนเนอร์นักเทียบท่า คุณควรตั้งค่าการอนุญาตสำหรับผู้ใช้โฟลเดอร์แอปพลิเคชัน ( certs
config
data
) ด้วย UID 1001
สำหรับการแทนที่ UID ภายในคอนเทนเนอร์ คุณควรใช้ตัวแปรสภาพแวดล้อมในคอนเทนเนอร์เริ่มต้นพารามิเตอร์ APP_UID
chown -R 1001:1001 {root-registry-admin-folder}
hostname
- กำหนดชื่อโฮสต์หรือที่อยู่ IP เพื่อรวมไว้ในส่วนหัว AllowedOrigins
ซึ่งใช้ในการตรวจสอบคำขอ CORS
port
- กำหนดพอร์ตที่แอปพลิเคชันจะใช้เพื่อฟังคำขอ HTTP (ค่าเริ่มต้นคือ 80) หมายเหตุ: หากคุณเริ่มแอปเป็นคอนเทนเนอร์ Docker เฉพาะพอร์ต 80
และ 443
เท่านั้นที่จะถูกเปิดเผยภายในคอนเทนเนอร์
store.type
- กำหนดประเภทพื้นที่เก็บข้อมูลสำหรับข้อมูลหลักของร้านค้า (ผู้ใช้ การเข้าถึง พื้นที่เก็บข้อมูล) ค่าเริ่มต้น ( embed
)
Now implement embed storage type only
store.admin_password
- แทนที่รหัสผ่านผู้ดูแลระบบเริ่มต้นเมื่อสร้างที่เก็บข้อมูลก่อน (รหัสผ่านเริ่มต้น: admin
)store.embed.path
- กำหนดชื่อพาธสำหรับไฟล์หน่วยเก็บข้อมูลแบบฝัง (ค่าเริ่มต้น: ./data.db
) registry.host
- กำหนดโฮสต์หลักหรือที่อยู่ IP ของอินสแตนซ์รีจิสทรีส่วนตัวด้วยคำนำหน้าโครงร่างโปรโตคอล
example: host: https://{registry-host}
registry.port
- พอร์ตของอินสแตนซ์รีจิสทรีนักเทียบท่าส่วนตัว (ค่าเริ่มต้น: 5000
)registry.auth_type
- กำหนด token
ประเภทการรับรองความถูกต้องหรือ basic
(ค่าเริ่มต้น: token
)issuer
- ชื่อผู้ออกซึ่งจะตรวจสอบภายในรีจิสทรี ชื่อผู้ออกจะต้องเหมือนกันในรีจิสทรีนักเทียบท่าส่วนตัวและ RegistryAdminservice
- ชื่อบริการที่กำหนดไว้ในการตั้งค่ารีจิสทรี ชื่อบริการจะต้องเหมือนกันที่รีจิสทรีนักเทียบท่าส่วนตัวและ RegistryAdmin ❗ โปรดคำนึงถึงประเภทการรับรองความถูกต้อง token
ที่ต้องกำหนดตัวเลือก certs
registry.certs.path
- ไดเร็กทอรีรากที่จะสร้างและจัดเก็บใบรับรองสำหรับการลงนามโทเค็นregistry.certs.key
- เส้นทางไปยังคีย์ส่วนตัวสำหรับการลงนามโทเค็นregistry.certs.public_key
- เส้นทางไปยังกุญแจสาธารณะเพื่อตรวจสอบโทเค็นregistry.certs.ca
- เส้นทางไปยังชุดผู้ออกใบรับรองregistry.certs.fqdns
- FQDN จำเป็นต้องเพิ่มใบรับรองรีจิสทรีและตรวจสอบตามคำขอจากไคลเอนต์registry.certs.ip
- ที่อยู่ IP จะเพิ่มลงในฟิลด์ส่วนขยายใบรับรอง (SAN) หากละเว้นข้อผิดพลาดใบรับรองอาจเกิดขึ้นได้ ใบรับรองจะถูกสร้างขึ้นโดยอัตโนมัติหาก registry.certs.path
ถูกต้องและไดเร็กทอรีว่างเปล่า หากไม่ได้กำหนดตัวเลือกใบรับรอง certs
จะถูกสร้างขึ้นที่โฮมไดเร็กตอรี่ของผู้ใช้ในโฟลเดอร์ย่อย .registry-certs
:
~/.registry-certs/
registry_auth.key
registry_auth.pub
registry_auth_ca.crt
หมายเหตุ: เมื่อใช้ใบรับรองที่ลงนามด้วยตนเอง คุณควรกำหนดค่า Docker Engine บนโฮสต์ไคลเอ็นต์เพื่อทำงานร่วมกับใบรับรอง
# https://docs.docker.com/config/daemon/
# /etc/docker/daemon.json (Linux)
# C:ProgramDatadockerconfigdaemon.json (Windows)
{
...
"insecure-registries": ["{registry-host}:{port}"],
...
}
ใบรับรองที่สร้างขึ้นสำหรับโทเค็นรีจิสทรียังสามารถใช้กับ HTTP TLS/SSL ได้ด้วย ใบรับรองนั้นจะเพิ่มไปยัง CA ที่เชื่อถือได้โดยอัตโนมัติ แต่ถ้าคุณใช้ใบรับรองอื่นสำหรับการเข้าถึง HTTPS คุณควรเพิ่มใบรับรองนั้นลงในพูล CA ที่เชื่อถือได้ เพื่อใช้ตัวเลือก
--registry.https-certs
สำหรับกำหนดเส้นทางไปยังใบรับรองที่ใช้ซึ่งใช้สำหรับการเข้าถึง TLS/SSL นอกจากนี้ยังจำเป็นสำหรับใบรับรองที่ออกโดย Let's Encrypt นอกจากนี้ คุณยังสามารถกำหนดตัวเลือก --registry.https-insecure
สำหรับการข้ามการตรวจสอบใบรับรองที่เชื่อถือได้ แต่ไม่แนะนำ
# in a registry-admin config
registry :
...
certs :
...
https_cert : /{path-to-ssl}/cert.pem
...
โปรดทราบว่าหากคุณใช้โหมด auto
ssl คุณต้องกำหนดตัวเลือก --ssl.acme-location
สำหรับจัดเก็บแคช ACME จากนั้นควรกำหนดวันที่แคชในการกำหนดค่า registry
ในตัวเลือกอนุญาตให้เข้ารหัส:
letsencrypt :
cachefile : /path/to/cache-file
email : [email protected]
hosts : [you-registry.domain.org]
รองรับรีจิสทรี V2 เท่านั้น สำหรับการใช้งานรีจิสทรีนักเทียบท่าพร้อมการรับรองความถูกต้องโทเค็น คุณต้องกำหนดค่าให้เป็นตัวจัดการการควบคุมการเข้าถึงแบบสแตนด์อโลนสำหรับทรัพยากรที่โฮสต์โดยบริการอื่น ๆ ที่ต้องการตรวจสอบสิทธิ์และจัดการการอนุญาตโดยใช้ตัวจัดการควบคุมการเข้าถึงแยกต่างหาก หากต้องการข้อมูลเพิ่มเติม โปรดปฏิบัติตามเอกสารอย่างเป็นทางการ
ในตอนแรก คุณต้องกำหนดตัวเลือก auth
สำหรับการตรวจสอบ token
และตั้ง certificate
และ key
เฉพาะที่สร้างด้วยแอป RegistryAdmin อ็อพชันโทเค็นต้องเหมือนกับอ็อพชันที่กำหนดโดย RegistryAdmin Registry
( issuer
, service
, cert_ca
) แอป RegistryAdmin มีจุดสิ้นสุดสาธารณะสำหรับตรวจสอบคำขอผู้ใช้ไปยังรีจิสทรี ซึ่งต้องใช้ในตัวเลือกการลงทะเบียน realm
https://{registry-admin-host}:{port}/api/v1/auth
❗ realm
คือตัวเลือกของ ที่อยู่ IP หรืออินสแตนซ์ Hostname RegistryAdmin ที่ต้องเข้าถึงได้สำหรับไคลเอ็นต์นักเทียบท่าซึ่งใช้เพื่อตรวจสอบสิทธิ์ในการลงทะเบียนส่วนตัว
auth :
token :
realm : http://{registry-admin-hostname}/api/v1/registry/auth
service : container_registry
issuer : registry_token_issuer
rootcertbundle : /certs/cert.crt
สำหรับการจัดการเหตุการณ์รีจิสทรีและงานพื้นที่เก็บข้อมูลทริกเกอร์ (เช่น เพิ่มใหม่ อัปเดต หรือลบรายการพื้นที่เก็บข้อมูล) คุณควรตั้งค่าตัวเลือกการแจ้งเตือนรีจิสทรี:
url
- http(s) url ไปยังโฮสต์ RegistryAdmin พร้อมเส้นทางจุดสิ้นสุดเหตุการณ์
Authorization
ผู้ใช้ที่เปิดใช้งานและลงทะเบียนและรหัสผ่านในแอป RegistryAdmin ซึ่งเข้ารหัสใน Base64
notifications :
events :
includereferences : true
endpoints :
- name : ra-listener
disabled : false
url : http://registry-admin/api/v1/registry/events
headers :
Authorization : [Basic YWRtaW46c3VwZXItc2VjcmV0] # encoded in Base64 as 'admin:super-secret'
timeout : 1s
threshold : 5
backoff : 3s
ignoredmediatypes :
- application/octet-stream
ignore :
mediatypes :
- application/octet-stream
ตัวเลือก basic
ที่ใช้ไฟล์ .htpasswd
และไม่รองรับการจำกัดการเข้าถึงที่เก็บข้อมูลเฉพาะ สำหรับการใช้งานการรับรองความถูกต้อง basic
คุณต้องมีตัวเลือกต่อไปนี้:
login
- ชื่อผู้ใช้สำหรับการเข้าถึงรีจิสทรีนักเทียบท่าpassword
- รหัสผ่านสำหรับการเข้าถึงรีจิสทรีนักเทียบท่า รีจิสทรีนักเทียบท่าจะอ่านไฟล์ .htpasswd
ทุกครั้งเมื่อตรวจสอบความถูกต้องของการโทร และไม่จำเป็นต้องเริ่มบริการรีจิสทรีใหม่หลังจากที่ผู้ใช้อัปเดตหรือลบใน RegistryAdmin
ตามค่าเริ่มต้น ไม่มีการสร้างบันทึกคำขอ สามารถเปิดได้โดยการตั้งค่า --logger.enabled
บันทึก (หมุนอัตโนมัติ) มีรูปแบบบันทึกรวมของ Apache
ผู้ใช้ยังสามารถเปิด stdout log on ด้วย --logger.stdout
มันจะไม่ส่งผลกระทบต่อการบันทึกไฟล์ด้านบน แต่จะแสดงข้อมูลขั้นต่ำเกี่ยวกับคำขอที่ประมวลผล บางอย่างเช่นนี้:
127.0.0.1 - - [06/Dec/2022:18:36:34 +0300] "GET /auth/user HTTP/2.0" 200 159
127.0.0.1 - - [06/Dec/2022:18:36:34 +0300] "GET /api/v1/registry/auth HTTP/2.0" 200 198
เมื่อ RegistryAdmin เข้าถึงได้จากอินเทอร์เน็ต คุณควรตั้งค่ากฎความปลอดภัยให้น้อยที่สุดเพื่อป้องกันรหัสผ่านที่ดุร้าย วิธีที่ง่ายที่สุดในการใช้บริการ fail2ban
พร้อมไฟล์บันทึกการเข้าถึงบนโฮสต์นักเทียบท่า
access.log
สำหรับบริการ RegistryAdmin # in registry-admin config file
logger :
enabled : true
filename : /var/log/registry-admin/access.log # mount the directory to a docker host folder for get access for fail2ban
max_size : 5M
max_backups : 3
filter
ด้วยกฎสำหรับบริการ registry-admin
ซึ่งจัดการข้อผิดพลาด 401
และ 403
auth/z # /etc/fail2ban/filter.d/registry-admin.conf
[Definition]
failregex = ^<HOST> .+" 40[1,3] d+ .*$
ignoreregex =
fail2ban
ที่คำสั่งลูกโซ่ เนื่องจากการรับส่งข้อมูลระบบปกติมักจะเจอบนห่วง INPUT
ในขณะที่การรับส่งข้อมูลคอนเทนเนอร์ของนักเทียบท่าจะถูกส่งผ่านห่วงโซ่ FORWARD
# in the /etc/fail2ban/action.d/ directory
sudo cp iptables-common.conf iptables-common-forward.conf
sudo sed -i ' s/INPUT/FORWARD/g ' iptables-common-forward.conf
sudo cp iptables-multiport.conf iptables-multiport-forward.conf
sudo sed -i ' s/iptables-common.conf/iptables-common-forward.conf/g ' iptables-multiport-forward.conf
jail
ด้วยกฎ registry-admin
# in /etc/fail2ban/jail.local
[registry-admin]
enabled = true
port = http,https # or set your custom port
filter = registry-admin
banaction = iptables-multiport-forward
logpath = /{path-to-logs-mounted-dir}/logs/access.log
maxretry = 5
findtime = 1h
bantime = 1d
แต่ละตัวเลือกสามารถระบุได้สามรูปแบบ: บรรทัดคำสั่ง คีย์สภาพแวดล้อม: คู่ค่า หรือไฟล์กำหนดค่า (รูปแบบ json
หรือ yaml
) ตัวเลือกบรรทัดคำสั่งจะมีรูปแบบยาวเท่านั้น เช่น --hostname=localhost คีย์สภาพแวดล้อม (ชื่อ) ที่แสดงสำหรับแต่ละตัวเลือกเป็นส่วนต่อท้าย เช่น [$HOSTNAME]
ไฟล์กำหนดค่าได้รับอนุญาตทั้งในรูปแบบ json
และ yml
--listen: listen on host:port (127.0.0.1:80/443 without) (default: *) [$RA_LISTEN]
--hostname: Main hostname of service (default: localhost) [$RA_HOST_NAME]
--port: Main web-service port. Default:80 (default: 80) [$RA_PORT]
--config-file: Path to config file [$RA_CONFIG_FILE]
--debug enable the debug mode [$RA_DEBUG]
registry:
--registry.host: Main host or address to docker registry service [$RA_REGISTRY_HOST]
--registry.port: Port which registry accept requests. Default:5000 (default: 5000) [$RA_REGISTRY_PORT]
--registry.auth-type:[basic|token] Type for auth to docker registry service. Available 'basic' and 'token'. Default 'token' (default: token) [$RA_REGISTRY_AUTH_TYPE]
--registry.login: Username is a credential for access to registry service using basic auth type [$RA_REGISTRY_LOGIN]
--registry.password: Password is a credential for access to registry service using basic auth type [$RA_REGISTRY_PASSWORD]
--registry.htpasswd: Path to htpasswd file when basic auth type selected [$RA_REGISTRY_HTPASSWD]
--registry.https-insecure Set https connection to registry insecure [$RA_REGISTRY_HTTPS_INSECURE]
--registry.service: A service name which defined in registry settings [$RA_REGISTRY_SERVICE]
--registry.issuer: A token issuer name which defined in registry settings [$RA_REGISTRY_ISSUER]
--registry.token-ttl: Define registry auth token TTL (in seconds). Default value 60 seconds. [$RA_REGISTRY_TOKEN_TTL]
--registry.gc-interval: Use for define custom time interval for garbage collector execute (minutes), default 1 hours [$RA_REGISTRY_GC_INTERVAL]
certs:
--registry.certs.path: A path to directory where will be stored new self-signed cert,keys and CA files, when 'token' auth type is used [$RA_REGISTRY_CERTS_CERT_PATH]
--registry.certs.key: A path where will be stored new self-signed private key file, when 'token' auth type is used [$RA_REGISTRY_CERTS_KEY_PATH]
--registry.certs.public-key: A path where will be stored new self-signed public key file, when 'token' auth type is used [$RA_REGISTRY_CERTS_PUBLIC_KEY_PATH]
--registry.certs.ca-root: A path where will be stored new CA bundles file, when 'token' auth type is used [$RA_REGISTRY_CERTS_CA_ROOT_PATH]
--registry.certs.fqdn: FQDN(s) for registry certificates [$RA_REGISTRY_CERTS_FQDN]
--registry.certs.ip: Address which appends to certificate SAN (Subject Alternative Name) [$RA_REGISTRY_CERTS_IP]
--registry.https-certs: A path to a HTTPS certificate used for TLS access to registry instance [$RA_REGISTRY_HTTPS_CERT]
auth:
--auth.token-secret: Main secret for auth token sign [$RA_AUTH_TOKEN_SECRET]
--auth.jwt-issuer: Token issuer signature (default: zebox) [$RA_AUTH_ISSUER_NAME]
--auth.jwt-ttl: Define JWT expired timeout (default: 1h) [$RA_AUTH_JWT_TTL]
--auth.cookie-ttl: Define cookies expired timeout (default: 24h) [$RA_AUTH_COOKIE_TTL]
logger:
--logger.stdout enable stdout logging [$RA_LOGGER_STDOUT]
--logger.enabled enable access and error rotated logs [$RA_LOGGER_ENABLED]
--logger.file: location of access log (default: access.log) [$RA_LOGGER_FILE]
--logger.max-size: maximum size before it gets rotated (default: 10M) [$RA_LOGGER_SIZE]
--logger.max-backups: maximum number of old log files to retain (default: 10) [$RA_LOGGER_BACKUPS]
ssl:
--ssl.type:[none|static|auto] ssl (auto) support. Default is 'none' (default: none) [$RA_SSL_TYPE]
--ssl.cert: path to cert.pem file [$RA_SSL_CERT]
--ssl.key: path to key.pem file [$RA_SSL_KEY]
--ssl.acme-location: dir where certificates will be stored by autocert manager (default: ./acme) [$RA_SSL_ACME_LOCATION]
--ssl.acme-email: admin email for certificate notifications [$RA_SSL_ACME_EMAIL]
--ssl.port: Main web-service secure SSL port. Default:443 (default: 443) [$RA_SSL_PORT]
--ssl.http-port: http port for redirect to https and acme challenge test (default: 80) [$RA_SSL_ACME_HTTP_PORT]
--ssl.fqdn: FQDN(s) for ACME certificates [$RA_SSL_ACME_FQDN]
store:
--store.type:[embed] type of storage (default: embed) [$RA_STORE_DB_TYPE]
--store.admin-password: Define password for default admin user when storage create first (default: admin) [$RA_STORE_ADMIN_PASSWORD]
embed:
--store.embed.path: Parent directory for the sqlite files (default: ./data.db) [$RA_STORE_EMBED_DB_PATH]
Help Options:
-? Show this help message
-h, --help Show this help message
frontend
เครื่อง คุณควรเรียกใช้ RegistryAdmin ด้วยตัวแปรสภาพแวดล้อมที่กำหนดไว้ RA_DEV_HOST=http://127.0.0.1:3000
เพื่อป้องกันข้อผิดพลาด CORS
ในเบราว์เซอร์ นอกจากนี้ .env.development
ต้องมีชื่อโฮสต์การพัฒนาที่ถูกต้องของ RegistryAdminengine
และสามารถใช้เพื่อขยายประเภทพื้นที่เก็บข้อมูลที่รองรับEmbed
ใช้ฐานข้อมูล SQLite
และเปิดใช้งาน CGO
ที่จำเป็นโครงการอยู่ระหว่างการพัฒนาและอาจมีการเปลี่ยนแปลงที่สำคัญจนกว่า v1 จะออก อย่างไรก็ตาม เรากำลังพยายามอย่างเต็มที่ที่จะไม่ทำลายสิ่งต่างๆ เว้นแต่จะมีเหตุผลที่ดี
โครงการนี้ได้รับแรงบันดาลใจจากโครงการและแนวคิดของอุมปูตุน