Advanced Configuration and Best Practices
admonition:tip Always test any system.yaml, database, or Java changes in a non-production environment first!
Production-Grade Database Setup
- Use external managed DBs (cloud) or cluster-grade DBs (on-prem)
- Secure database traffic with TLS/SSL if available
Example system.yaml database config:
shared:
database:
type: postgresql
driver: org.postgresql.Driver
url: jdbc:postgresql://dbhost:5432/artifactory
username: artifactory
password: <secure-password>
JVM & System Performance
- Tune heap size (
-Xms,-Xmx) for at least 4–8G in production - Enable G1GC garbage collector:
-XX:+UseG1GC
Storage
- NFS: Enterprise-grade, redundant NFS/EFS for on-prem/HA
- Object Storage: Use S3, Azure Blob, or GCP Storage for cloud/HA
- Snapshot & backup strategies; test restores regularly
Security
- Run Artifactory under a non-root user
- Keep OS and JFrog software patched
- Require HTTPS for all user-facing endpoints
- Restrict admin UI to VPN or trusted networks where possible
Monitoring & Alerts
- Enable and configure monitoring:
- JFrog Xray
- Cloud-native logging (e.g., CloudWatch, Stackdriver)
- Filebeat/Logstash to ship logs centrally
- Set up proactive alerts/notifications for low disk, high CPU, failed backups
Upgrades, Rollbacks, and Backups
- Perform backups before upgrades
- Stage upgrades on test nodes before production
- Maintain fallback complete VM/application snapshots for rollback
LDAP & SSO
- Integrate with your enterprise LDAP/AD or SSO provider for RBAC
- Audit access and optimize user/group roles
admonition:warning Never make direct changes to Artifactory system tables in the database. Use the web UI or REST API for all supported changes.