From b4c22f4e39f251e4efb5c03f05e0ce9b72d81de9 Mon Sep 17 00:00:00 2001 From: Stefan Pejcic Date: Sat, 1 Feb 2025 11:41:46 +0100 Subject: [PATCH] 1docs --- .../version-1.0.0/admin/000_intro.md | 335 +++++++++ .../version-1.0.0/admin/001_dashboard.md | 118 ++++ .../version-1.0.0/admin/002_notifications.md | 137 ++++ .../admin/backups/_category_.json | 7 + .../version-1.0.0/admin/backups/backups.md | 6 + .../admin/domains/_category_.json | 7 + .../version-1.0.0/admin/domains/domains.md | 102 +++ .../admin/emails/_category_.json | 7 + .../version-1.0.0/admin/emails/emails.md | 11 + .../version-1.0.0/admin/emails/settings.md | 72 ++ .../version-1.0.0/admin/emails/summary.md | 12 + .../version-1.0.0/admin/plans/_category_.json | 7 + .../admin/plans/change-plan-for-user.md | 24 + .../admin/plans/hosting_plans.md | 175 +++++ .../admin/security/_category_.json | 7 + .../version-1.0.0/admin/security/firewall.md | 166 +++++ .../version-1.0.0/admin/security/waf.md | 51 ++ .../admin/server/_category_.json | 7 + .../admin/server/change_root_password.md | 9 + .../version-1.0.0/admin/server/crons.md | 20 + .../version-1.0.0/admin/server/ssh.md | 28 + .../version-1.0.0/admin/server/timezone.md | 13 + .../admin/services/_category_.json | 7 + .../admin/services/allocation.md | 11 + .../version-1.0.0/admin/services/docker.md | 59 ++ .../admin/services/log_viewer.md | 62 ++ .../version-1.0.0/admin/services/nginx.md | 142 ++++ .../version-1.0.0/admin/services/status.md | 14 + .../admin/settings/_category_.json | 7 + .../admin/settings/adminpanel.md | 26 + .../version-1.0.0/admin/settings/general.md | 79 +++ .../version-1.0.0/admin/settings/openpanel.md | 163 +++++ .../version-1.0.0/admin/users/_category_.json | 7 + .../version-1.0.0/admin/users/openadmin.md | 204 ++++++ .../version-1.0.0/admin/users/openpanel.md | 646 ++++++++++++++++++ .../version-1.0.0/articles/000_intro.md | 26 + .../articles/accounts/_category_.json | 7 + .../articles/accounts/forbidden-usernames.md | 113 +++ .../articles/backups/_category_.json | 7 + .../articles/databases/_category_.json | 7 + ...ution-limit-for-phpmyadmin-in-openpanel.md | 45 ++ .../articles/dev-experience/_category_.json | 7 + .../dev-experience/autostart-services.md | 57 ++ .../customizing-openpanel-user-interface.md | 228 +++++++ .../selfhosted-screenshots-api.md | 31 + .../selfhosted-temporary-links-api.md | 13 + .../articles/docker/_category_.json | 7 + ...image_example_include_php_ioncubeloader.md | 119 ++++ .../high-memory-usage-for-openpanel-user.md | 25 + ...reate-runc-console-socket-mkdir-tmp-pty.md | 42 ++ ...-to-create-runc-console-socket-stat-tmp.md | 12 + ...set-mysql-mariadb-per-user-in-openpanel.md | 22 + .../articles/domains/_category_.json | 7 + .../all-domains-show-nginx-502-error.md | 20 + ...to-Make-Connection-to-Backend-httpd-UDS.md | 39 ++ .../articles/email/_category_.json | 7 + .../email/troubleshooting-email-errors.md | 36 + .../articles/extensions/_category_.json | 7 + .../extensions/openpanel-and-blesta.md | 9 + .../extensions/openpanel-and-fossbilling.md | 90 +++ .../extensions/openpanel-and-whmcs.md | 69 ++ .../articles/files/_category_.json | 7 + .../articles/install-update/_category_.json | 7 + .../articles/license/_category_.json | 7 + ...enpanel_enterprise_and-activate_license.md | 39 ++ .../version-1.0.0/articles/os/_category_.json | 7 + .../articles/security/_category_.json | 7 + ...ing-the-SSL-of-another-unrelated-domain.md | 47 ++ .../articles/server/_category_.json | 7 + .../articles/support/_category_.json | 7 + .../articles/transfers/_category_.json | 7 + .../import-cpanel-backup-to-openpanel.md | 22 + .../articles/user-experience/_category_.json | 7 + ...s-or-increase-upload-limits-per-website.md | 21 + .../how-to-find-openpanel-version.md | 21 + .../how-to-setup-django-on-openpanel.md | 53 ++ ...pringboot-java-applicaiton-on-openpanel.md | 29 + ...install-older-ioncube-loader-extensions.md | 20 + .../setup-remote-smtp-server-for-openpanel.md | 104 +++ .../articles/web-servers/_category_.json | 7 + ...server-nginx-cannot-automatically-start.md | 47 ++ .../version-1.0.0/changelog/0.1.0.md | 8 + .../version-1.0.0/changelog/0.1.1.md | 17 + .../version-1.0.0/changelog/0.1.2.md | 19 + .../version-1.0.0/changelog/0.1.3.md | 13 + .../version-1.0.0/changelog/0.1.4.md | 38 ++ .../version-1.0.0/changelog/0.1.5.md | 53 ++ .../version-1.0.0/changelog/0.1.6.md | 334 +++++++++ .../version-1.0.0/changelog/0.1.7.md | 328 +++++++++ .../version-1.0.0/changelog/0.1.8.md | 63 ++ .../version-1.0.0/changelog/0.1.9.md | 200 ++++++ .../version-1.0.0/changelog/0.2.0.md | 83 +++ .../version-1.0.0/changelog/0.2.1.md | 224 ++++++ .../version-1.0.0/changelog/0.2.2.md | 114 ++++ .../version-1.0.0/changelog/0.2.3.md | 86 +++ .../version-1.0.0/changelog/0.2.4.md | 31 + .../version-1.0.0/changelog/0.2.5.md | 45 ++ .../version-1.0.0/changelog/0.2.6.md | 51 ++ .../version-1.0.0/changelog/0.2.7.md | 32 + .../version-1.0.0/changelog/0.2.8.md | 65 ++ .../version-1.0.0/changelog/0.2.9.md | 42 ++ .../version-1.0.0/changelog/0.3.0.md | 38 ++ .../version-1.0.0/changelog/0.3.1.md | 60 ++ .../version-1.0.0/changelog/0.3.2.md | 40 ++ .../version-1.0.0/changelog/0.3.3.md | 75 ++ .../version-1.0.0/changelog/0.3.4.md | 16 + .../version-1.0.0/changelog/0.3.5.md | 45 ++ .../version-1.0.0/changelog/0.3.6.md | 37 + .../version-1.0.0/changelog/0.3.7.md | 29 + .../version-1.0.0/changelog/0.3.8.md | 39 ++ .../version-1.0.0/changelog/1.0.0.md | 33 + .../version-1.0.0/changelog/intro.md | 55 ++ .../version-1.0.0/getting-started/overview.md | 12 - .../getting-started/quickstart.md | 11 - .../versioned_docs/version-1.0.0/licence.md | 8 - .../version-1.0.0/panel/000_intro.md | 32 + .../version-1.0.0/panel/account/2fa.md | 21 + .../panel/account/_category.json | 7 + .../version-1.0.0/panel/account/account.md | 13 + .../version-1.0.0/panel/account/login.md | 42 ++ .../panel/account/login_history.md | 14 + .../panel/account/notifications.md | 51 ++ .../panel/advanced/_category.json | 7 + .../version-1.0.0/panel/advanced/advanced.md | 19 + .../version-1.0.0/panel/advanced/cronjobs.md | 54 ++ .../panel/advanced/ip_blocker.md | 13 + .../panel/advanced/process_manager.md | 19 + .../panel/advanced/server_settings.md | 248 +++++++ .../version-1.0.0/panel/advanced/ssh.md | 53 ++ .../version-1.0.0/panel/advanced/terminal.md | 15 + .../panel/analytics/_category.json | 7 + .../panel/analytics/account_activity.md | 26 + .../panel/analytics/analytics.md | 13 + .../panel/analytics/domain_visitors.md | 18 + .../panel/analytics/resource_usage.md | 79 +++ .../panel/applications/_category.json | 7 + .../panel/applications/applications.md | 16 + .../version-1.0.0/panel/applications/pm2.md | 145 ++++ .../panel/applications/wordpress.md | 238 +++++++ .../version-1.0.0/panel/caching/Memcached.md | 88 +++ .../version-1.0.0/panel/caching/Redis.md | 87 +++ .../panel/caching/_category.json | 7 + .../version-1.0.0/panel/caching/caching.md | 34 + .../panel/caching/elasticsearch.md | 5 + .../panel/dashboard/_category.json | 7 + .../panel/dashboard/dark-mode.md | 15 + .../panel/dashboard/dashboard.md | 90 +++ .../panel/databases/_category.json | 7 + .../panel/databases/databases.md | 83 +++ .../panel/databases/phpmyadmin.md | 25 + .../panel/databases/processlist.md | 11 + .../version-1.0.0/panel/databases/remote.md | 104 +++ .../version-1.0.0/panel/databases/wizard.md | 13 + .../version-1.0.0/panel/domains/SSL.md | 50 ++ .../panel/domains/_category.json | 7 + .../version-1.0.0/panel/domains/dns.md | 54 ++ .../version-1.0.0/panel/domains/domains.md | 136 ++++ .../version-1.0.0/panel/files/FTP.md | 52 ++ .../version-1.0.0/panel/files/_category.json | 7 + .../version-1.0.0/panel/files/backups.md | 21 + .../version-1.0.0/panel/files/disk_usage.md | 65 ++ .../version-1.0.0/panel/files/files.md | 139 ++++ .../panel/files/fix_permissions.md | 6 + .../panel/files/inodes_explorer.md | 60 ++ .../panel/files/malware-scanner.md | 7 + 165 files changed, 8923 insertions(+), 31 deletions(-) create mode 100644 website/versioned_docs/version-1.0.0/admin/000_intro.md create mode 100644 website/versioned_docs/version-1.0.0/admin/001_dashboard.md create mode 100644 website/versioned_docs/version-1.0.0/admin/002_notifications.md create mode 100644 website/versioned_docs/version-1.0.0/admin/backups/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/admin/backups/backups.md create mode 100644 website/versioned_docs/version-1.0.0/admin/domains/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/admin/domains/domains.md create mode 100644 website/versioned_docs/version-1.0.0/admin/emails/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/admin/emails/emails.md create mode 100644 website/versioned_docs/version-1.0.0/admin/emails/settings.md create mode 100644 website/versioned_docs/version-1.0.0/admin/emails/summary.md create mode 100644 website/versioned_docs/version-1.0.0/admin/plans/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/admin/plans/change-plan-for-user.md create mode 100644 website/versioned_docs/version-1.0.0/admin/plans/hosting_plans.md create mode 100644 website/versioned_docs/version-1.0.0/admin/security/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/admin/security/firewall.md create mode 100644 website/versioned_docs/version-1.0.0/admin/security/waf.md create mode 100644 website/versioned_docs/version-1.0.0/admin/server/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/admin/server/change_root_password.md create mode 100644 website/versioned_docs/version-1.0.0/admin/server/crons.md create mode 100644 website/versioned_docs/version-1.0.0/admin/server/ssh.md create mode 100644 website/versioned_docs/version-1.0.0/admin/server/timezone.md create mode 100644 website/versioned_docs/version-1.0.0/admin/services/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/admin/services/allocation.md create mode 100644 website/versioned_docs/version-1.0.0/admin/services/docker.md create mode 100644 website/versioned_docs/version-1.0.0/admin/services/log_viewer.md create mode 100644 website/versioned_docs/version-1.0.0/admin/services/nginx.md create mode 100644 website/versioned_docs/version-1.0.0/admin/services/status.md create mode 100644 website/versioned_docs/version-1.0.0/admin/settings/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/admin/settings/adminpanel.md create mode 100644 website/versioned_docs/version-1.0.0/admin/settings/general.md create mode 100644 website/versioned_docs/version-1.0.0/admin/settings/openpanel.md create mode 100644 website/versioned_docs/version-1.0.0/admin/users/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/admin/users/openadmin.md create mode 100644 website/versioned_docs/version-1.0.0/admin/users/openpanel.md create mode 100644 website/versioned_docs/version-1.0.0/articles/000_intro.md create mode 100644 website/versioned_docs/version-1.0.0/articles/accounts/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/accounts/forbidden-usernames.md create mode 100644 website/versioned_docs/version-1.0.0/articles/backups/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/databases/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/databases/how-to-increase-php-execution-limit-for-phpmyadmin-in-openpanel.md create mode 100644 website/versioned_docs/version-1.0.0/articles/dev-experience/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/dev-experience/autostart-services.md create mode 100644 website/versioned_docs/version-1.0.0/articles/dev-experience/customizing-openpanel-user-interface.md create mode 100644 website/versioned_docs/version-1.0.0/articles/dev-experience/selfhosted-screenshots-api.md create mode 100644 website/versioned_docs/version-1.0.0/articles/dev-experience/selfhosted-temporary-links-api.md create mode 100644 website/versioned_docs/version-1.0.0/articles/docker/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/docker/building_a_docker_image_example_include_php_ioncubeloader.md create mode 100644 website/versioned_docs/version-1.0.0/articles/docker/high-memory-usage-for-openpanel-user.md create mode 100644 website/versioned_docs/version-1.0.0/articles/docker/how-to-fix-failed-to-create-runc-console-socket-mkdir-tmp-pty.md create mode 100644 website/versioned_docs/version-1.0.0/articles/docker/how-to-fix-failed-to-create-runc-console-socket-stat-tmp.md create mode 100644 website/versioned_docs/version-1.0.0/articles/docker/how-to-set-mysql-mariadb-per-user-in-openpanel.md create mode 100644 website/versioned_docs/version-1.0.0/articles/domains/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/domains/all-domains-show-nginx-502-error.md create mode 100644 website/versioned_docs/version-1.0.0/articles/domains/how-to-fix-Failed-to-Make-Connection-to-Backend-httpd-UDS.md create mode 100644 website/versioned_docs/version-1.0.0/articles/email/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/email/troubleshooting-email-errors.md create mode 100644 website/versioned_docs/version-1.0.0/articles/extensions/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/extensions/openpanel-and-blesta.md create mode 100644 website/versioned_docs/version-1.0.0/articles/extensions/openpanel-and-fossbilling.md create mode 100644 website/versioned_docs/version-1.0.0/articles/extensions/openpanel-and-whmcs.md create mode 100644 website/versioned_docs/version-1.0.0/articles/files/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/install-update/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/license/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/license/upgrade_to_openpanel_enterprise_and-activate_license.md create mode 100644 website/versioned_docs/version-1.0.0/articles/os/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/security/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/security/domain-is-loading-the-SSL-of-another-unrelated-domain.md create mode 100644 website/versioned_docs/version-1.0.0/articles/server/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/support/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/transfers/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/transfers/import-cpanel-backup-to-openpanel.md create mode 100644 website/versioned_docs/version-1.0.0/articles/user-experience/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/user-experience/disable-php-errors-or-increase-upload-limits-per-website.md create mode 100644 website/versioned_docs/version-1.0.0/articles/user-experience/how-to-find-openpanel-version.md create mode 100644 website/versioned_docs/version-1.0.0/articles/user-experience/how-to-setup-django-on-openpanel.md create mode 100644 website/versioned_docs/version-1.0.0/articles/user-experience/how-to-setup-springboot-java-applicaiton-on-openpanel.md create mode 100644 website/versioned_docs/version-1.0.0/articles/user-experience/install-older-ioncube-loader-extensions.md create mode 100644 website/versioned_docs/version-1.0.0/articles/user-experience/setup-remote-smtp-server-for-openpanel.md create mode 100644 website/versioned_docs/version-1.0.0/articles/web-servers/_category_.json create mode 100644 website/versioned_docs/version-1.0.0/articles/web-servers/after-restarting-server-nginx-cannot-automatically-start.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.1.0.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.1.1.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.1.2.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.1.3.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.1.4.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.1.5.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.1.6.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.1.7.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.1.8.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.1.9.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.2.0.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.2.1.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.2.2.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.2.3.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.2.4.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.2.5.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.2.6.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.2.7.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.2.8.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.2.9.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.3.0.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.3.1.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.3.2.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.3.3.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.3.4.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.3.5.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.3.6.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.3.7.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/0.3.8.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/1.0.0.md create mode 100644 website/versioned_docs/version-1.0.0/changelog/intro.md delete mode 100644 website/versioned_docs/version-1.0.0/getting-started/overview.md delete mode 100644 website/versioned_docs/version-1.0.0/getting-started/quickstart.md delete mode 100644 website/versioned_docs/version-1.0.0/licence.md create mode 100644 website/versioned_docs/version-1.0.0/panel/000_intro.md create mode 100644 website/versioned_docs/version-1.0.0/panel/account/2fa.md create mode 100644 website/versioned_docs/version-1.0.0/panel/account/_category.json create mode 100644 website/versioned_docs/version-1.0.0/panel/account/account.md create mode 100644 website/versioned_docs/version-1.0.0/panel/account/login.md create mode 100644 website/versioned_docs/version-1.0.0/panel/account/login_history.md create mode 100644 website/versioned_docs/version-1.0.0/panel/account/notifications.md create mode 100644 website/versioned_docs/version-1.0.0/panel/advanced/_category.json create mode 100644 website/versioned_docs/version-1.0.0/panel/advanced/advanced.md create mode 100644 website/versioned_docs/version-1.0.0/panel/advanced/cronjobs.md create mode 100644 website/versioned_docs/version-1.0.0/panel/advanced/ip_blocker.md create mode 100644 website/versioned_docs/version-1.0.0/panel/advanced/process_manager.md create mode 100644 website/versioned_docs/version-1.0.0/panel/advanced/server_settings.md create mode 100644 website/versioned_docs/version-1.0.0/panel/advanced/ssh.md create mode 100644 website/versioned_docs/version-1.0.0/panel/advanced/terminal.md create mode 100644 website/versioned_docs/version-1.0.0/panel/analytics/_category.json create mode 100644 website/versioned_docs/version-1.0.0/panel/analytics/account_activity.md create mode 100644 website/versioned_docs/version-1.0.0/panel/analytics/analytics.md create mode 100644 website/versioned_docs/version-1.0.0/panel/analytics/domain_visitors.md create mode 100644 website/versioned_docs/version-1.0.0/panel/analytics/resource_usage.md create mode 100644 website/versioned_docs/version-1.0.0/panel/applications/_category.json create mode 100644 website/versioned_docs/version-1.0.0/panel/applications/applications.md create mode 100644 website/versioned_docs/version-1.0.0/panel/applications/pm2.md create mode 100644 website/versioned_docs/version-1.0.0/panel/applications/wordpress.md create mode 100644 website/versioned_docs/version-1.0.0/panel/caching/Memcached.md create mode 100644 website/versioned_docs/version-1.0.0/panel/caching/Redis.md create mode 100644 website/versioned_docs/version-1.0.0/panel/caching/_category.json create mode 100644 website/versioned_docs/version-1.0.0/panel/caching/caching.md create mode 100644 website/versioned_docs/version-1.0.0/panel/caching/elasticsearch.md create mode 100644 website/versioned_docs/version-1.0.0/panel/dashboard/_category.json create mode 100644 website/versioned_docs/version-1.0.0/panel/dashboard/dark-mode.md create mode 100644 website/versioned_docs/version-1.0.0/panel/dashboard/dashboard.md create mode 100644 website/versioned_docs/version-1.0.0/panel/databases/_category.json create mode 100644 website/versioned_docs/version-1.0.0/panel/databases/databases.md create mode 100644 website/versioned_docs/version-1.0.0/panel/databases/phpmyadmin.md create mode 100644 website/versioned_docs/version-1.0.0/panel/databases/processlist.md create mode 100644 website/versioned_docs/version-1.0.0/panel/databases/remote.md create mode 100644 website/versioned_docs/version-1.0.0/panel/databases/wizard.md create mode 100644 website/versioned_docs/version-1.0.0/panel/domains/SSL.md create mode 100644 website/versioned_docs/version-1.0.0/panel/domains/_category.json create mode 100644 website/versioned_docs/version-1.0.0/panel/domains/dns.md create mode 100644 website/versioned_docs/version-1.0.0/panel/domains/domains.md create mode 100644 website/versioned_docs/version-1.0.0/panel/files/FTP.md create mode 100644 website/versioned_docs/version-1.0.0/panel/files/_category.json create mode 100644 website/versioned_docs/version-1.0.0/panel/files/backups.md create mode 100644 website/versioned_docs/version-1.0.0/panel/files/disk_usage.md create mode 100644 website/versioned_docs/version-1.0.0/panel/files/files.md create mode 100644 website/versioned_docs/version-1.0.0/panel/files/fix_permissions.md create mode 100644 website/versioned_docs/version-1.0.0/panel/files/inodes_explorer.md create mode 100644 website/versioned_docs/version-1.0.0/panel/files/malware-scanner.md diff --git a/website/versioned_docs/version-1.0.0/admin/000_intro.md b/website/versioned_docs/version-1.0.0/admin/000_intro.md new file mode 100644 index 00000000..0675e4fa --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/000_intro.md @@ -0,0 +1,335 @@ +--- +sidebar_position: 1 +--- + +# Get Started with OpenAdmin + +The OpenAdmin offers an administrator-level interface where you can efficiently handle tasks such as creating and managing users, setting up hosting plans, configuring backups, and editing OpenPanel settings. + +![openpanel vs openadmin](/img/admin/openadmin_vs_openpanel_what_is_the_difference.png) + + + +## Requirements + +Minimum Requirements: + +- A blank full virtual machine or bare metal server +- Minimum of 1GB RAM and 15GB storage (4GB RAM and 50GB is recommended) +- x86_64/amd64 architecture **[support for ARM (AArch64) is in progress](https://github.com/stefanpejcic/OpenPanel/issues/63)* +- IPv4 address + +Supported OS: +- **Ubuntu 22 and 24** +- **Debian 11 and 12** +- **AlmaLinux 9.2, 9.4** +- **RockyLinux 9.4** +- **CentOS 9** + +:::info +If you are using external firewall, the following ports should be opened: `53` `80` `443` `465` `2083` `2087` `32768:60999` +::: + +## Installation + +OpenPanel can be installed on both VPS and bare-metal servers. + +### Install OpenPanel on VPS + +The installation process takes about 5 minutes. To install openpanel follow these steps: + + + + +1. Log in to your new server; +- as root via SSH or +- as a user with sudo privileges and type "sudo -i" +2. Copy and paste openpanel installation command into the terminal +```shell +bash <(curl -sSL https://openpanel.org) +``` + +The installation script supports [optional flags](/install) that can be used to configure openpanel, skip certain installation steps or simply display debugging information. + +If you encountered any errors while running the installation script, please copy & paste the installation log file to [the community forums](https://community.openpanel.org). + + + + +OpenPanel is available as a 1-Click app (droplet) on DigitalOcean. Click on the button to spin a droplet with OpenPanel already installed: + +[![droplet](/img/do-btn-blue.svg)](https://marketplace.digitalocean.com/apps/openpanel?refcode=6498bfc47cd6&action=deploy) + +or with DigitalOcean api: + +```bash +curl -X POST -H 'Content-Type: application/json' \ + -H 'Authorization: Bearer '$TOKEN'' -d \ + '{"name":"choose_a_name","region":"nyc3","size":"s-2vcpu-4gb","image":"openpanel"}' \ + "https://api.digitalocean.com/v2/droplets" +``` + + + + +### Installing OpenPanel on a bare-metal server + +When installing OpenPanel on a bare-metal server, it is recommended to format the disk with the XFS filesystem and enable the 'pquota' mount option. This is required for Docker's OverlayFS storage driver to function properly, as it allows setting user quotas and limiting container sizes on newer kernels. More details on these requirements can be found in the [Docker OverlayFS documentation](https://docs.docker.com/engine/storage/drivers/overlayfs-driver/#prerequisites). + +If your disk is not formatted with XFS, the OpenPanel installation script will automatically allocate 50% of the available storage. It will then create an XFS storage file and mount it at `/var/lib/docker/`. This process may take a considerable amount of time on servers with large storage capacities (e.g., several terabytes). In such cases, we recommend manually setting the filesystem to XFS or adjusting the storage file size. Alternatively, you can specify a custom size during installation by using the `--docker-space` flag. For instance, to allocate only 100GB for Docker, you can use: `--docker-space=100`. + +To install OpenPanel on a bare-metal server: + + + + + +```shell +bash <(curl -sSL https://openpanel.org) +``` + + + + +*replace `250` with the disk size in GB to allocate to Docker. + +```shell +bash <(curl -sSL https://openpanel.org) --docker-space=250 +``` + + + + + +The installation script supports [additional flags](/install) that can be used to configure openpanel, skip certain installation steps or simply display debugging information. + +If you encountered any errors while running the installation script, please copy & paste the installation log file to [the community forums](https://community.openpanel.org). + + +## Post Install Steps + +Recommended steps after installing OpenPanel: +- [access admin panel](/docs/admin/intro#access-openadmin) +- [set domain for accessing panels](/docs/admin/settings/general/#set-domain-for-openpanel) +- [set custom nameservers](/docs/admin/settings/openpanel/#set-nameservers) +- [create a hosting plan](/docs/admin/plans/hosting_plans#create-a-plan) +- [create a new user account](/docs/admin/users/openpanel#create-users) +- [set admin email for server alerts](/docs/admin/notifications/#email-alerts) + +### Access OpenAdmin + +Run `opencli admin` command to find the address on which admin panel is accessible. Example output: + +```bash +root@server:/home# opencli admin +● AdminPanel is running and is available on: https://server.openpanel.co:2087/ +``` + +To login to admin panel you need a username and password. + +![openadmin login page](/img/admin/openadmin_login_page.png) + +Both username and password are random generated on installation. + +To view admin accounts: + +```bash +opencli admin list +``` + +To set a new password for the admin account run command: `opencli admin password USER_HERE NEW_PASSWORD_HERE` + +Example: +```bash +root@server:/home# opencli admin password stefan ba63vfav7fq36vas +Password for user 'stefan' changed. + +=============================================================== +● AdminPanel is running and is available on: https://server.openpanel.co:2087/ + +- username: stefan +- password: ba63vfav7fq36vas + +=============================================================== +``` + +### Enable Automatic Updates + +- `autopatch` option allows Administrator to automatically update OpenPanel to minor versions. MINOR versions include only security updates and bug fixes. +- `autoupdate` option allows Administrator to enable or disable automatic updates to major versions. MAJOR versions add new functionality in a backward compatible manner. + + + + +To enable automatic updates, navigate to **OpenAdmin > General Settings** and check both the 'Auto Updates' and 'Auto Patches' options: + +![openadmin update preferences](/img/admin/openadmin_set_update_preferences.png) + + + + +To enable automatic updates from the terminal use commands: + +```bash +opencli config update autoupdate yes +``` + +```bash +opencli config update autopatch yes +``` + + + + +### Disable Automatic Updates + + + + +To disable automatic updates, navigate to **OpenAdmin > General Settings** and uncheck the 'Auto Updates' and 'Auto Patches' options: + +![openadmin update preferences](/img/admin/openadmin_set_update_preferences.png) + + + + +To disable automatic updates from the terminal use commands: + +```bash +opencli config update autoupdate no +``` + +```bash +opencli config update autopatch no +``` + + + + + + +### Manual Updates + +When a new update is available, you will receive a notification in the admin panel. + + + + +To manually update OpenPanel, navigate to **OpenAdmin > General Settings** and click on the "Update Now" button. NOTE: update is visible only if newer version is available. + +Step 1. | Step 2. +:-------------------------:|:-------------------------: +![openadmin update manually ](/img/admin/admin_jupdate_available.png) | ![openadmin update manually 2 ](/img/admin/admin_jupdate_available2.png) + + + + + +To update OpenPanel manually from the terminal, run the following command: + +```bash +opencli update --force +``` + + + + +To update OpenPanel manually from GitHub: + +```bash +bash <(curl -sSL https://raw.githubusercontent.com/stefanpejcic/OpenPanel/refs/heads/main/version/UPDATE.sh) +``` + + + + + + + + + + + + + + + + + + + + +## License + +OpenPanel is available in two editions: + +- [**OpenPanel Community edition**](/product/openpanel-free-control-panel/) is a free version of the panel that is limited to 3 user accounts and 50 domains, which should be more than enough for personal use. +- [**OpenPanel Enterprise edition**](/product/openpanel-premium-control-panel/) unlocks premium features for user isolation and management, suitable for web hosting providers. It has API access and can easily be integrated with 3rd party billing tools like WHMCS and FOSSBilling. + + +[OpenPanel Community VS Enterprise](/beta/) + + + +## Security + +OpenPanel has been built from the ground up with security in mind. Internet history is littered with painful security incidents, so we traded old software compatibility and insecure authentication methods for modern day security measures. + + +### Firewall +OpenPanel supports both [ConfigServer & Firewall (CSF)](/docs/admin/security/firewall/#csf) and [UncomplicatedFirewall (UFW)](/docs/admin/security/firewall/#ufw). + + +### Isolated Services +Each user is provided with a containerized environment similar to a VPS, featuring their own web server (Nginx or Apache) and database (MySQL or MariaDB). This setup prevents resource hogging commonly associated with standard shared hosting. + + +### Two-Factor Authentication +Users have the option to [enable Two-Factor Authentication (2FA)](/docs/panel/account/2fa/) for added security on their accounts. Administrators can manage this feature at the server level or for individual users. + +### Detailed Logging +All actions taken by OpenPanel users are recorded in per-user activity logs. This eliminates confusion over issues like file or webmail account deletions—every action is logged and can be reviewed by users. + +### Isolated Users and Admin +OpenPanel and OpenAdmin operate independently from one another. One runs as a systemd service while the other runs as a Docker container. OpenPanel utilizes SQLite for its database, whereas OpenAdmin relies on MySQL. Importantly, users can perform actions on their panel even if the admin panel is unreachable or disabled. + + +### Disabling the Admin Panel +For production environments, particularly with the Community edition—which does not offer API access and lacks third-party integrations—it is advisable to disable the admin panel after configuring your server. Alternatively, you can restrict access to the admin port `2087` by whitelisting your team's IP addresses. + +To disable OpenAdmin, navigate to **OpenAdmin > Settings > OpenAdmin** and click on *"Disable Admin Panel"* or use the terminal command `opencli admin off`. This will deactivate the admin panel, and you can re-enable it when necessary with the command `opencli admin on`. + +### Limiting Access to Admin Panel +To restrict OpenAdmin access to your team, whitelist your server's IP addresses in CSF/UFW, and then disable port `2087`. + +### HTTP Basic Authentication +As an additional security measure, HTTP Basic Authentication can be enabled for the admin panel. + +### Brute-Force Protection + +Both user and admin interfaces have a built-in rate limiting and IP address blocking to protect against brute-force attacks. You can configure the maximum number of failed login attempts allowed per IP (default is `5` per minute) and the total number of failed attempts (default is `20`), after which the offending IP will be temporarily blocked by the firewall for one hour. + +For user panel imits are configurable in: `/etc/openpanel/openpanel/conf/openpanel.config` file: +```bash +[USERS] +login_ratelimit=5 +login_blocklimit=20 +``` + +![user ratelimit](/img/panel/v1/user_block.png) + +For admin panel imits are configurable in: `/etc/openpanel/openadmin/config/admin.ini` file: +```bash +[PANEL] +login_ratelimit=5 +login_blocklimit=20 +``` + +![admin ratelimit](/img/admin/admin_block.png) + +If a user successfully logs in, the counter for `login_blocklimit` will reset. +Failed login attempts and blocked IP addresses are logged in the `/var/log/openpanel/admin/failed_login.log` file for OpenAdmin and in the `/var/log/openpanel/user/failed_login.log` file for OpenPanel. + +### IP blocking per domain + +Users can block IP addresses per domain name. diff --git a/website/versioned_docs/version-1.0.0/admin/001_dashboard.md b/website/versioned_docs/version-1.0.0/admin/001_dashboard.md new file mode 100644 index 00000000..bdd88ce2 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/001_dashboard.md @@ -0,0 +1,118 @@ +--- +sidebar_position: 2 +--- + +# Dashboard + +The OpenAdmin offers an administrator-level interface where you can efficiently handle tasks such as creating and managing users, setting up hosting plans, configuring backups, and editing OpenPanel settings. + +The dashboard page is the hub of the Admin interface and provides the overview of the current server performance, services and usage. + +![openadmin dashboard](/img/admin/openadmin_dashboard.png) + +On top of the pages, header contains: + +- **Search bar** to search users, domains or settings pages. +- **Dark mode toggle:** Allows you to switch between dark and light modes. +- **Notifications indicator:** Displays important server-wide alerts. +- **Avatar:** Indicates the admin username with options to edit the profile. + + +The dashboard page contains 13 widgets: + +- **Users** widget: Displays the total number of user accounts. +- **Backups** widget: Shows the number of backup jobs and indicates backup errors if any. +- **Plans** widget: Indicates the number of plans available. +- **Load Averages** widget: Presents real-time server load with color indicators. +- **Memory Usage** widget: Provides the current memory usage with color indicators. +- **Activity** widget: Displays the latest activities of all users and the Administrator. +- **Usage** widget: Displays the historical usage for websites, domains and users. +- **Quick start guide** widget: Displays recommended steps for the Administrator to perform after installing OpenPanel. +- **Services status** widget: Displays the status of monitored services and actions to control them. +- **System Information** widget: Displays server configuration. +- **Latest News** widget: Displays latest news from [the openpanel.co blog](/blog/). +- **CPU** widget: Illustrates real-time usage for each CPU core with color indicators. +- **Disk usage** widget: Presents server partitions and disk usage for each partition. + +To hide a widget click on the "Dismiss" button that appears when hovering over a widget. + +## User Activity + +The OpenAdmin dashboard's 'User Activity' widget shows a log of actions taken by OpenPanel users, with a focus on those performed by the Administrator. The log is organized from newest to oldest, and active users, who have taken actions in the last 30 minutes, are marked with a green dot on the right side. To view detailed activity information, click on the user icon (avatar) to open their user account page with the Activity tab. + +![openadmin dashboard activity widget](/img/admin/openadmin_dashboard_activity_widget.png) + + +## Usage + +The OpenAdmin dashboard's 'Usage' widget displays historical resource usage for teh server: number of websites, domains and users. + +![openadmin dashboard usage widget](/img/admin/openadmin_dashboard_usage_widget.png) + + +## Quick start guide + +Quick start guide highlights the recommended steps for the Administrator to perform upon installing OpenPanel. + +![openadmin dashboard quick_start_guide](/img/admin/dashboard/quick_start_guide.png) + +These steps include: + +- Set domain name instead of IP address for accessing OpenPanel +- Create a hosting plan and create a user account +- Settings custom nameservers to be used for domains +- Install and configure ModSecurity WAF for Nginx +- Schedule remote backups + + +## Services Status + +The Services Status widget displays a list of services managed by OpenPanel and enables you to check their current status, restart them, or start/stop when needed. + +![OpenAdmin Dashboard Services Widget](/img/admin/openadmin_dashboard_services_widget.png) + +Services can be configured from [Services > Service Status](/docs/admin/services/status) page. + +The Admin service is excluded from the list since stopping that service will disable the OpenAdmin interface. To disable the admin panel, use the 'Disable Admin Panel' option from Settings > OpenAdmin. + + +## System Information + +The System Information widget displays overview about your server configuration: + +- Hostname +- Operating System +- OpenPanel version +- Current Server Time +- Kernel version +- CPU logo and details on hover +- Uptime +- Number of running processes + +![OpenAdmin Dashboard System information widget](/img/admin/openadmin_dashboard_system_info.png) + +## Latest News + +The Latest News widget displays last 10 posts from [openpanel.co/blog](/blog/): + +![OpenAdmin Dashboard Latest News widget](/img/admin/openadmin_dashboard_latest_news.png) + + + +## CPU + +The CPU usage percentage represents the amount of the CPU's processing power that is currently being utilized. It indicates how much of the CPU's capacity is in use at a specific moment. For example, a CPU usage of 50% means that the CPU is operating at half of its maximum processing capacity, while 100% usage indicates that the CPU is fully utilized, and there may be resource constraints or performance issues. + +The data is auto-refreshed every 1 second to provide real-time updates. + +![openadmin dashboard cpu widget](/img/admin/openadmin_dashboard_cpu_widget.png) + + + +## Disk Usage + +The Disk Usage widget provides an overview of your system's disk usage. It displays information about each mounted disk partition, including details such as the device, mount point, filesystem type, and the amount of space used and available in a human-readable format (in gigabytes, GB or terabytes, TB). The 'Usage Percentage' column indicates the percentage of disk space currently in use. + +![openadmin dashboard disk widget](/img/admin/openadmin_dashboard_disk_widget.png) + + diff --git a/website/versioned_docs/version-1.0.0/admin/002_notifications.md b/website/versioned_docs/version-1.0.0/admin/002_notifications.md new file mode 100644 index 00000000..eee4e52f --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/002_notifications.md @@ -0,0 +1,137 @@ +--- +sidebar_position: 6 +--- + +# Notifications + +Notifications are accessible from the notification icon in upper right corner. + +![notifications center](/img/admin/notifications_center.png) + + +OpenPanel records the following actions: + +- server reboot +- service is inactive +- update is available +- admin login from new ip address +- ssh login from new ip address +- high memory usage +- high average load +- high cpu usage +- high disk usage +- high swap usage +- dns changed + +Each notification type can be disabled and threshold limits can be set by the Admin user. + + + + +To view current notification settings, click on the bell icon in the top menu. +You can view the current settings, and modify them. + + + + +To view current notification settings run: + +```bash +opencli admin notifications get + + +To confirm receipt of a notification, select the checkmark icon located in front of it. Once a notification is confirmed, subsequent notifications of the same type will be logged if the issue persists. For instance, if a service is unavailable, the system will generate an initial notification. However, if you acknowledge the notification and the service remains unrecovered, the next time the check is executed, it will log another notification. + +Example notifications: + +On Server Reboot +![reboot](/img/admin/dashboard/reboot.png) + +If service is inactive: +![service](/img/admin/dashboard/service.png) + +If CPU usage is over a threshold: +![cpu](/img/admin/dashboard/cpu.png) + +If new version of OpenPanel is available: +![update](/img/admin/dashboard/update.png) + +If Memory usage is over a threshold: +![ram](/img/admin/dashboard/ram.png) + +If system is running out of disk space: +![disk](/img/admin/dashboard/disk.png) + +### Email alerts + +To receive email alerts, simply add your email address to the 'Email for notifications' field or leave it empty to disable email alerts. + + +![screenshot](/img/admin/service_alert.png) + + +If enabled, by default OpenPanel will send email alerts from noreply@openpanel.co + +To configure your own SMTP for email delivery, you need to update values: + +- mail_server - your domain or ip where email is hosted +- mail_port - outgoing smtp port (default is 465) +- mail_use_tls - default is False +- mail_use_ssl - default is True +- mail_username - email address to use for sending +- mail_password - password for email address +- mail_default_sender - email to display, defaults is same as mail_username + +Each value is configured using `opencli config update` option. examples: + +```bash +opencli config update mail_server example.net +``` +```bash +opencli config update mail_port 465 +``` +```bash +opencli config update mail_use_tls False +``` +```bash +opencli config update mail_use_ssl True +``` +```bash +opencli config update mail_username stefan@example.net +``` +```bash +opencli config update mail_password strongpass1231 +``` +```bash +opencli config update mail_default_sender stefan@example.net +``` + + +### Daily Usage Reports + +If email alerts are enabled, you will also receive Usage Reports: + +![image](/img/admin/daily_report.png) + diff --git a/website/versioned_docs/version-1.0.0/admin/backups/_category_.json b/website/versioned_docs/version-1.0.0/admin/backups/_category_.json new file mode 100644 index 00000000..6d1a9e95 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/backups/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Backups", + "position": 6, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/admin/backups/backups.md b/website/versioned_docs/version-1.0.0/admin/backups/backups.md new file mode 100644 index 00000000..1ee935bb --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/backups/backups.md @@ -0,0 +1,6 @@ +--- +sidebar_position: 1 +--- + +# Backups + diff --git a/website/versioned_docs/version-1.0.0/admin/domains/_category_.json b/website/versioned_docs/version-1.0.0/admin/domains/_category_.json new file mode 100644 index 00000000..21485547 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/domains/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Domains", + "position": 4, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/admin/domains/domains.md b/website/versioned_docs/version-1.0.0/admin/domains/domains.md new file mode 100644 index 00000000..391105ea --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/domains/domains.md @@ -0,0 +1,102 @@ +--- +sidebar_position: 1 +--- + +# Domains + +Domains page displays all domains currently hosted on server. + + +## List domains + + + + + +To list all current domains navigate to Domains page: + + +| Field | Description | +| ------------------ | ------------------------------------------------------------------------- | +| **ID** | ID of the domain in database. | +| **Domain Name** | The domain name. | +| **Owner** | User that added the domain. | +| **DNS Zone** | View and edit DNS zone for domain. | +| **Virtual Hosts** | View and edit Nginx configuration for a domain. | +| **Access Logs** | View live access log for the domain. | +| **Visitors Report** | Total number of domain names allowed per user on the plan. | + + + + + +To list all current domains run: + +```bash +opencli domains-all +``` + +Example output: +```bash +opencli domains-all +stefan.openpanel.org +pejcic.rs +nesto.com +pcx3.com +``` + + + + +## Add domain + + + + + +Domains can only be added [from the user interface](/docs/panel/domains/#adding-a-domain). + + + + +To create a new plan run the following command: + +```bash +opencli domains-add [--debug] +``` + +Example: +```bash +root@stefan:/usr/local/admin# opencli domains-add pejcci.rs wzs11p2i --debug +Checking if domain already exists on the server +Adding pejcci.rs to the domains database +Purging cached list of domains for the account +Creating document root directory /home/wzs11p2i/pejcci.rs +Checking webserver configuration +Checking if default vhosts file exists for Nginx +Checking IPv4 address for the account +Creating /etc/nginx/sites-available/pejcci.rs.conf +Restarting nginx to apply changes +Creating vhosts proxy file for Nginx +Webserver is running, reloading configuration +Creating DNS zone file: /etc/bind/zones/pejcci.rs.zone +DNS service is running, adding the zone +Adding the newly created zone file to the DNS server +Checking and setting nginx service to automatically start on reboot +Starting service for the default PHP version 8.2 +Checking and setting PHP service to automatically start on reboot +Checking and starting the ssl generation service +Starting Let'sEncrypt SSL generation in background +Domain pejcci.rs added successfully +``` + + + + +## Move domain + +This is currently not possible. + +## Delete domain + +Domains can currently be deleted only [from the user interface](/docs/panel/domains/#delete-a-domain). diff --git a/website/versioned_docs/version-1.0.0/admin/emails/_category_.json b/website/versioned_docs/version-1.0.0/admin/emails/_category_.json new file mode 100644 index 00000000..8a7235af --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/emails/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Emails", + "position": 5, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/admin/emails/emails.md b/website/versioned_docs/version-1.0.0/admin/emails/emails.md new file mode 100644 index 00000000..46e6cf4e --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/emails/emails.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 1 +--- + +# Emails + +Emails page displays all email addresses on the server. + +:::info +Emails are only available on [OpenPanel Enterprise edition](/beta) +::: diff --git a/website/versioned_docs/version-1.0.0/admin/emails/settings.md b/website/versioned_docs/version-1.0.0/admin/emails/settings.md new file mode 100644 index 00000000..f1bcbdec --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/emails/settings.md @@ -0,0 +1,72 @@ +--- +sidebar_position: 3 +--- + +# Email Settings + +Email Settings allow Administrator to monitor email traffic and manage mail server. + +:::info +Emails are only available on [OpenPanel Enterprise edition](/beta) +::: + + +Settings page displays current mail server status and settings. + +![email settings](/img/admin/email_settings.png) + +## MailServer Service + +The status of the Mail Server service is displayed at the top of the page, where administrators can start, stop, or restart the service as needed. + +The current status of the webmail client is shown under "Webmail Software," along with the total number of email accounts. + +![mail_actions](/img/admin/mail_actions.png) + +## MailServer Stack + +Administrators can set and configure different services based on their needs: + +![mailserver stack](/img/admin/mailserver_stack.png) + +Changes to this service will interrupt current email traffic and restart the mailserver. + +Advanced users can edit the `/usr/local/mail/openmail/mailserver.env` and `/usr/local/mail/openmail/compose.yml` files directly through the interface. + +![mailserver env](/img/admin/mailserver_env.png) + + +## Relay Hosts + +An SMTP relay service (aka relay host / smarthost) is an MTA that relays (forwards) mail on behalf of third parties (it does not manage the mail domains). + +You should only configure this when you have some external service for outgoing emails, like SMTP2GO or self-hosted Proxmox Mail Gateway. + +![relay hosts](/img/admin/relay_hosts.png) + +## Webmail Client + +Administrators can choose the Webmail client for their users to use on configured domain. + +![webmail client](/img/admin/webmail_client.png) + + +Available options are: + +- Roundcube +- SOGo +- SnappyMail + +Only one service can be active at a time. + +## Webmail Domain + +By default the webmail client is available on `IP:8080`. Administrators can set a custom domain name to be used for the webmail. + +![webmail domain](/img/admin/webmail_domain.png) + +Domain should be added in format `name.tld` example: webmail.hosting.com or webmail-hosting.com - without the http or https prefix. + +`/webmail` on every domain added to the server will redirect to this webmail domain. + + diff --git a/website/versioned_docs/version-1.0.0/admin/emails/summary.md b/website/versioned_docs/version-1.0.0/admin/emails/summary.md new file mode 100644 index 00000000..6b9d5155 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/emails/summary.md @@ -0,0 +1,12 @@ +--- +sidebar_position: 2 +--- + +# Summary Reports + +Email Summary Reports show daily and monthly reports for all outgoing emails on the server. + +:::info +Emails are only available on [OpenPanel Enterprise edition](/beta) +::: + diff --git a/website/versioned_docs/version-1.0.0/admin/plans/_category_.json b/website/versioned_docs/version-1.0.0/admin/plans/_category_.json new file mode 100644 index 00000000..0ca10564 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/plans/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Plans", + "position": 3, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/admin/plans/change-plan-for-user.md b/website/versioned_docs/version-1.0.0/admin/plans/change-plan-for-user.md new file mode 100644 index 00000000..ba160dc7 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/plans/change-plan-for-user.md @@ -0,0 +1,24 @@ +--- +sidebar_position: 2 +--- + +# Change plan for a user + +You can control the memory, CPUs, and disk space the docker container uses, and you can specify whether or not Kubernetes is supported. You can change the CPUs and memory on an existing docker container on the fly without any downtime. + +To change a hosting plan (package) for an account click on 'Edit information' for that user and in the new modal select the new plan name then click on 'Save changes'. + +![openadmin change plan for a user](/img/admin/change_plan.png) + + + + + +If you need more disk space, you have to create a new docker container. Unfortunately **you can’t resize the existing docker container’s disk**. + +This is a limitation with the Docker service itself, and not with OpenPanel. Support for resizing existing docker images is on the way. + +You can [increase the size of the devicemapper partition for the docker container](https://pcx3.com/linux/how-to-increase-docker-container-disk-size-devicemapper/), but please note that the change is not permanent and will be reverted on server reboot. + + +When changing a plan for the user, the disk size value from the new plan is simply ignored. The value is used only for new user accounts. diff --git a/website/versioned_docs/version-1.0.0/admin/plans/hosting_plans.md b/website/versioned_docs/version-1.0.0/admin/plans/hosting_plans.md new file mode 100644 index 00000000..6c54ee2a --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/plans/hosting_plans.md @@ -0,0 +1,175 @@ +--- +sidebar_position: 1 +--- + +# Hosting Plans + +Hosting plans outline the available services and limitations for users. [Docker images](https://dev.openpanel.co/images/) specify the pre-installed services for a plan. [Enabled Features](/docs/admin/settings/openpanel/#enable-features) determine which pages users can access from the OpenPanel interface. + + +## List hosting plans + + + + + +To list existing plans navigate to Plans page: + +![openadmin list plans](/img/admin/adminpanel_plans.png) + +| Field | Description | +| ------------------ | ------------------------------------------------------------------------- | +| **ID** | Unique ID for the plan. | +| **Plan Name** | Display name that users will see in their OpenPanel dashboards. | +| **Description** | Visible only to administrators. | +| **Image** | Name of the Docker image used when creating new accounts on the plan. | +| **Docker Size** | Disk space allocated for the user's container . | +| **Storage** | Disk space allocated for user's websites files *(/home/user/ directory)*. | +| **Domains** | Total number of domain names allowed per user on the plan. | +| **Websites** | Total number of websites (WordPress, NodeJS, Python) per user on the plan. | +| **Databases** | Total number of MySQL databases allowed per user on the plan. | +| **CPU** | Number of CPU cores dedicated to the user on this hosting plan. | +| **RAM** | Physical Memory (RAM) in GB allocated to the user on this hosting plan. | +| **Port Speed** | Maximum post speed for users in mbit/s. | +| **Inodes Limit** | *(DEPRECATED)* Limits the total number of files allowed in the container. | + + + + + + + +To list all current hosting packages (plans) run: + +```bash +opencli plan-list +``` + +Example output: +```bash +opencli plan-list ++----+-----------------+------------------------+---------------+----------------+------------+--------------+----------+------+------+-----------------+-----------+ +| id | name | description | domains_limit | websites_limit | disk_limit | inodes_limit | db_limit | cpu | ram | docker_image | bandwidth | ++----+-----------------+------------------------+---------------+----------------+------------+--------------+----------+------+------+-----------------+-----------+ +| 1 | cloud_4_nginx | 20gb space and Nginx | 0 | 10 | 20 GB | 1000000 | 0 | 4 | 4g | dev_plan_nginx | 100 | +| 2 | cloud_4_apache | 20gb space and Apache | 0 | 10 | 20 GB | 1000000 | 0 | 4 | 4g | dev_plan_apache | 100 | +| 3 | cloud_8_nginx | 80gb space and Nginx | 0 | 50 | 80 GB | 2000000 | 0 | 8 | 8g | dev_plan_nginx | 200 | +| 4 | cloud_8_apache | 80gb space and Apache | 0 | 50 | 80 GB | 2000000 | 0 | 8 | 8g | dev_plan_apache | 200 | ++----+-----------------+------------------------+---------------+----------------+------------+--------------+----------+------+------+-----------------+-----------+ +``` + +You can also format the data as JSON: + +```bash +opencli plan-list --json +``` + + + + +## Create a plan + + + + +To create a new hosting plan click on the 'Create new plan' button and set the desired limits for the plan. + +![openadmin create new plan](/img/admin/adminpanel_plans_create_new.gif) + + + + +To create a new plan run the following command: + +```bash +opencli plan-create +``` + +Example: +```bash +opencli plan-create cloud_8 "Custom plan with 8GB of RAM&CPU" 0 0 15 500000 0 8 8 nginx 200 +``` + + + + + +## Change user plan + +Please visit [this page](/docs/admin/plans/change-plan-for-user) + +## Modify plan + +To change plan limits click on the edit button for the plan and set the new limits. + + +Step 1. | Step 2. +:-------------------------:|:-------------------------: +![openadmin edit plan step 1](/img/admin/openadmin_edit_plan_1.png) | ![openadmin edit plan step 2](/img/admin/openadmin_edit_plan_2.png) + +The new limits will be applied immediately to all accounts. + +## List Users on Plan + + + + +To view all users that are currently using a hosting plan, simply sort the users table by that plan name, or in the search fields type the plan name. + + + + +List all users that are currently using a plan: + +```bash +opencli plan-usage +``` + +Example: +```bash +opencli plan-usage 2 ++----+----------+-------+----------------+---------------------+ +| id | username | email | plan_name | registered_date | ++----+----------+-------+----------------+---------------------+ +| 2 | rasa | rasa | cloud_4_apache | 2023-11-30 10:33:52 | +| 3 | aas | aas | cloud_4_apache | 2023-11-30 12:01:49 | ++----+----------+-------+----------------+---------------------+ +``` + +You can also format the data as JSON: + +```bash +opencli plan-usage --json +``` + + + +## Delete Plan + + + + +To delete a hosting plan click on the delete button next to the plan name. + +Step 1. | Step 2. +:-------------------------:|:-------------------------: +![openadmin delete plan step 1](/img/admin/admin_delete_plan_1.png) | ![openadmin delete plan step 2](/img/admin/admin_delete_plan_2.png) + + + + +To delete a hosting plan: + +```bash +opencli plan-delete +``` + +Example: +```bash +opencli plan-delete 32 +``` + + + +NOTE: Plan can not be deleted if it has users assigned. + diff --git a/website/versioned_docs/version-1.0.0/admin/security/_category_.json b/website/versioned_docs/version-1.0.0/admin/security/_category_.json new file mode 100644 index 00000000..2df8a5e0 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/security/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Security", + "position": 8, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/admin/security/firewall.md b/website/versioned_docs/version-1.0.0/admin/security/firewall.md new file mode 100644 index 00000000..61ab391d --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/security/firewall.md @@ -0,0 +1,166 @@ +--- +sidebar_position: 2 +--- + +# Firewall + +View and edit firewall rules. + +OpenPanel supports both ConfigServer Firewall (CSF) and Uncomplicated Firewall (UFW). By default, CSF is installed, but you can choose to install UFW instead by [using the `--ufw` option during installation](/install). + +Based on the installed firewall, the **OpenAdmin > Firewall** page will display either the ConfigServer Firewall UI or the custom UFW interface. + + +## CSF + +If ConfigServer Security & Firewall (CSF) is installed, it's integrated UI will be displayed on **OpenAdmin > Firewall**. + +For instructions on how to use the CSF UI, please refer to [ConfigServer Security & Firewall official documentation](https://download.configserver.com/csf/readme.txt). + +![csf firewall](/img/admin/firewall_csf.png) + +If you need to re-open all necessary ports for OpenPanel services and users, run the command: `opencli firewall-reset`. + +## UFW + +If Uncomplicated Firewall (UFW) is installed, our custom interface will be displayed on **OpenAdmin > Firewall**. + +![openadmin firewall settings](/img/admin/adminpanel_firewall_settings.png) + +The firewall settings page provides multiple tabs: + +- IPv4 - View and manage IPv4 firewall rules +- IPv6 - View and manage IPv6 firewall rules +- Settings - Manage UFW settings +- Blacklists - Enable/disable blacklists +- Logs - view the UFW service log + +### View rules + +The table shows firewall rules, showcasing information such as rule ID, action, ports, source/destination IP, and the username of the user utilizing the port. +For IPv6 rules, navigate to the IPv6 tab. + +![openadmin firewall ipv6 rules](/img/admin/adminpanel_firewall_ipv6.png) + +### Add Rules + +To create a new rule click on the 'Add Rule' button and in the modal choose 'ALLOW' to allow the IP address or port, and 'DENY' to block access for IP address or port. + +![openadmin firewall add rule](/img/admin/openadmin_ufw_ip.png) + +### Delete Rules + +To delete a rule click on the 'Delete' link next to it, and in the confirmation modal click on 'Delete' button. + +![openadmin firewall delete rule](/img/admin/adminpanel_firewall_delete_rule.png) + +### Settings + +This tab displays the current UFW settings and allows you to configure them. + +It shows the current service status and provides options to enable or disable the firewall. + +![openadmin firewall settings](/img/admin/openadmin_ufw_settings.png) + +The following settings are available: + +- **Enable IPV6** - Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback accepted). You will need to 'disable' and then 'enable' the firewall for the changes to take affect. +- **Default Input Policy** - Set the default input policy to ACCEPT, DROP, or REJECT. Please note that if you change this you will most likely want to adjust your rules. +- **Default Output Policy** - Set the default input policy to ACCEPT, DROP, or REJECT. Please note that if you change this you will most likely want to adjust your rules. +- **Allow ping (IPMI)** - By default, UFW allows ping requests. You can leave (icmp) ping requests enabled to diagnose networking problems. + +The following tools are available: + +- **Export IPv4 rules** - click to download all existing IPv4 rules form the UFW service. +- **Export IPv6 rules** - click to download all existing IPv6 rules form the UFW service. +- **Restrict access to Cloudflare only** - block access to this server for traffic not coming from [Cloudflare IP addresses](https://www.cloudflare.com/ips/). This will prevent direct access to the server IP and only allow traffic from Cloudflare network. This is useful when your domains are configured to use the Cloudflare proxy, and you want to block direct access that bypasses Cloudflare's protection. **NOTE: This setting affects all users and their services.** +- **Reset ports for all users** - delete all existing UFW rules and open ports required by OpenPanel, plus custom ports for users. + + +### Blacklists + +Unless the [`--skip-blacklists` flag](/install) is provided during the installation of OpenPanel, ipset-blacklists are automatically installed when the [`--ufw` flag](/install) is used. + +From the **OpenAdmin > Security > Firewall > Blacklists** page, administrators can easily add blacklists to block IP addresses from known malicious sources. + +This feature utilizes the [ipset-blacklist](https://github.com/stefanpejcic/ipset-blacklist) service to automate the process of fetching and blocking IPs, providing a straightforward and effective method to enhance system security without manual intervention. + +![openadmin ufw ipsetblacklists](/img/admin/openadmin_ufw_blacklists.png) + +Default blacklists: + +| Blacklist | URL | +|-----------------|----------------------------------------------------------------------| +| AbuseIPDB (DISABLED) | [https://api.abuseipdb.com/api/v2/blacklist](https://api.abuseipdb.com/api/v2/blacklist) | +| OpenPanel | [https://api.openpanel.co/blocklist.txt](https://api.openpanel.co/blocklist.txt) | +| Spamhaus DROP | [https://www.spamhaus.org/drop/drop.lasso](https://www.spamhaus.org/drop/drop.lasso) | +| Spamhaus DROP | [https://www.spamhaus.org/drop/edrop.lasso](https://www.spamhaus.org/drop/edrop.lasso) | +| DShield | [https://www.dshield.org/feeds/suspiciousdomains_Low.txt](https://www.dshield.org/feeds/suspiciousdomains_Low.txt) | +| FireHOL level1 | [https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset](https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level1.netset) | +| FireHOL level2 | [https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level2.netset](https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level2.netset) | +| FireHOL level3 | [https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level3.netset](https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level3.netset) | +| FireHOL level4 | [https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level4.netset](https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/firehol_level4.netset) | +| Binary Defense | [https://www.binarydefense.com/banlist.txt](https://www.binarydefense.com/banlist.txt) | +| blocklist.de | [https://lists.blocklist.de/lists/all.txt](https://lists.blocklist.de/lists/all.txt) | + + + + + +To enable or disable a blacklist in the OpenAdmin interface, click the 'Actions' button for the desired list, then select 'Enable' or 'Disable'. + +To delete a blacklist from the OpenAdmin interface, click the 'Actions' button for the desired list, then select 'Delete'. + + + + + To manage blacklists from the terminal: + + Download new IP addresses for all enabled blocklists: + ```bash + opencli blacklist --fetch + ``` + + Update all ipsets rules and reload UFW service: + ```bash + opencli blacklist --update_ufw + ``` + + Add a new blacklist: + ```bash + opencli blacklist --add-blacklist name= url= + ``` + + Enable a blacklist: + ```bash + opencli blacklist --enable-blacklist= + ``` + + Disable a blacklist: + ```bash + opencli blacklist --disable-blacklist= + ``` + + Delete a blacklist: + ```bash + opencli blacklist --delete-blacklist= + ``` + + + + + + +### View logs + +For logs, navigate to the 'Logs' tab. + +![openadmin firewall logs](/img/admin/adminpanel_firewall_logs.png) + + +## External Firewall + +Some cloud providers, like [Hetzner](https://docs.hetzner.com/robot/dedicated-server/firewall/), offer their own external firewalls. If you are using an external firewall, ensure the following ports are open for OpenPanel services to be accessible: `53` `80` `443` `2083` `2087` `32768:60999` + +If you are [using a custom port for OpenPanel instead of the default 2083](/docs/admin/settings/general/#change-openpanel-port), ensure that port is open as well. + diff --git a/website/versioned_docs/version-1.0.0/admin/security/waf.md b/website/versioned_docs/version-1.0.0/admin/security/waf.md new file mode 100644 index 00000000..320e79ea --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/security/waf.md @@ -0,0 +1,51 @@ +--- +sidebar_position: 1 +--- + +# WAF + +Install ModSecurity and enable it for user domains. + +The Settings > ModSecurity page allows you to install ModSecurity for Nginx and configures the [OWASP core ruleset](https://owasp.org/www-project-modsecurity-core-rule-set/) + +The OWASP ModSecurity Core Rule Set (CRS) is a set of generic attack detection rules for use with ModSecurity that will increase the security of user domains and websites. + +## Install ModSecurity + +Upon the initial access to the ModSecurity page, you will be prompted to install the ModSecurity plugin. + +:::danger +The installation process may require up to 10 minutes and involves rebuilding the Nginx configuration. It's important to note that any customizations to the service will be permanently removed during this process. It is advisable to perform the installation during off-peak hours to minimize the risk of causing downtime for websites. +::: + +To install ModSecurity click on the 'Install' button. + +![openadmin modsec install](/img/admin/adminpanel_modsec_install.png) + +Or from terminal run: [opencli nginx-install_modsec](/docs/admin/scripts/webserver#install-modsecurity) + +## Activate ModSecurity + +Upon ModSecurity installation, all new domains will have ModSecurity enabled by default. However, individual users can choose to disable ModSecurity for their domains at any time through their OpenPanel interface. [More information](/docs/panel/advanced/server_settings#modsecurity-settings) + + +## Customize ModSecurity rules + +Adjusting ModSecurity rules means fine-tuning security settings for your specific needs, giving administrators the power to better protect against specific threats and reduce false positives. + +You can follow user-friendly guides to easily customize ModSecurity rules, adapting security settings to your specific needs. + +- [Nginx Docs: Using the OWASP CRS with the NGINX ModSecurity WAF](https://docs.nginx.com/nginx-waf/admin-guide/nginx-plus-modsecurity-waf-owasp-crs/) +- [Nginx Docs: Using the ModSecurity Rules from Trustwave SpiderLabs with the NGINX ModSecurity WAF](https://docs.nginx.com/nginx-waf/admin-guide/nginx-plus-modsecurity-waf-trustwave-spiderlabs-rules/) +- [ModSecurity Documentation](https://github.com/SpiderLabs/ModSecurity/wiki) +- [ProSec Blog: Modsecurity Core Rule Sets and Custom Rules](https://www.prosec-networks.com/en/blog/modsecurity-core-rule-sets-und-eigene-regeln/) + +## Enable ModSecurity for existing domains + +After installing ModSecurity only new domains that users add will by default have ModSecurity activate, and for existing users this process can be performed by the administrator from this page or from each user panel individually. To enable ModSecurity on all domains owned by a user, select the user anc click on 'Enable' button. + +![openadmin modsec settings](/img/admin/adminpanel_modsec_use.png) + +Or from terminal run: [opencli domains-enable_modsec](/docs/admin/scripts/domains#enable-modsecurity) + + diff --git a/website/versioned_docs/version-1.0.0/admin/server/_category_.json b/website/versioned_docs/version-1.0.0/admin/server/_category_.json new file mode 100644 index 00000000..49371560 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/server/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Server", + "position": 8, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/admin/server/change_root_password.md b/website/versioned_docs/version-1.0.0/admin/server/change_root_password.md new file mode 100644 index 00000000..f379c576 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/server/change_root_password.md @@ -0,0 +1,9 @@ +--- +sidebar_position: 1 +--- + +# Change Root Password + +*OpenAdmin > Server > Change Root Password* allows Administrators to change password for the ssh root user. + +![root password](/img/admin/change_root_pass.png) diff --git a/website/versioned_docs/version-1.0.0/admin/server/crons.md b/website/versioned_docs/version-1.0.0/admin/server/crons.md new file mode 100644 index 00000000..2bc7b6f9 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/server/crons.md @@ -0,0 +1,20 @@ +--- +sidebar_position: 4 +--- + +# Cron jobs + +*OpenAdmin > Server > OpenPanel Cron Jobs* allows Administrators to view scheduled crons for OpenAdmin and edit their schedule or enable/disable logging to `/etc/openpanel/openadmin/cron.log` file. + +![screenshot](/img/admin/openadmin_cronjobs.png) + +:::danger +We recommend against editing the cronjobs! +Editing the schedule or commands is not recommended, as it may render certain features inaccessible. This should only be done in cases where fine-tuning execution on servers with low resources is necessary, or when instructed by the OpenPanel support team. These are crons that OpenPanel uses. If you want to add custom cronjobs, you can safely [add them in crontab for the root user](https://www.google.com/search?q=linux+add+cron). +::: + +Cron format is: + +```bash +SCHEDULE USER COMMAND +``` diff --git a/website/versioned_docs/version-1.0.0/admin/server/ssh.md b/website/versioned_docs/version-1.0.0/admin/server/ssh.md new file mode 100644 index 00000000..cc8417b5 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/server/ssh.md @@ -0,0 +1,28 @@ +--- +sidebar_position: 3 +--- + +# SSH Access + +*OpenAdmin > Server > SSH Access* allows Administrators to view and modify current server SSH configuration. + +### Basic SSH Settings + +![screenshot](/img/admin/ssh_access.png) + +This page displays: + +- **Port** - current SSH port +- **PermitRootLogin** - allow login for *root* user +- **PasswordAuthentication** - enable usage of passwords for ssh +- **PubkeyAuthentication** - enable usage of ssh keys + +You can change any value and click on the save button to apply. + +### Advanced SSH Settings + +Here you can edit the SSH configuration file: `/etc/ssh/sshd_config` + +### Authorized SSH Keys + +Here you can view current authorized ssh keys, remove them or add new key. diff --git a/website/versioned_docs/version-1.0.0/admin/server/timezone.md b/website/versioned_docs/version-1.0.0/admin/server/timezone.md new file mode 100644 index 00000000..437b2d60 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/server/timezone.md @@ -0,0 +1,13 @@ +--- +sidebar_position: 5 +--- + +# Server Time + +*OpenAdmin > Server > Server Time* allows Administrators to view current server timezone and change it. + +![screenshot](/img/admin/timezone.png) + +:::info +After changing timezone, we recommend to restart the server or at least the OpenAdmin and Cron services: `systemctl restart admin cron`. +::: diff --git a/website/versioned_docs/version-1.0.0/admin/services/_category_.json b/website/versioned_docs/version-1.0.0/admin/services/_category_.json new file mode 100644 index 00000000..13428d67 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/services/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Services", + "position": 7, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/admin/services/allocation.md b/website/versioned_docs/version-1.0.0/admin/services/allocation.md new file mode 100644 index 00000000..a210982c --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/services/allocation.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 4 +--- + +# Resource Allocation + +:::info +This feature is still experimental. +::: + + diff --git a/website/versioned_docs/version-1.0.0/admin/services/docker.md b/website/versioned_docs/version-1.0.0/admin/services/docker.md new file mode 100644 index 00000000..eb89028a --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/services/docker.md @@ -0,0 +1,59 @@ +--- +sidebar_position: 3 +--- + +# Docker + +![openadmin docker settings](/img/admin/adminpanel_docker_settings.png) + + +To download Docker images, click the "update images" button. + +To remove an unnecessary image, click the delete button next to the image and confirm your action in the pop-up modal. + + +## Docker images + +Docker images serve as the foundation for OpenPanel user accounts, determining the technology stack available to the user. + + +### Update images + +Updating Docker images involves downloading the latest versions from the openpanel servers, and these updated images will be used only for new users. Existing users' setups will remain unaffected. + +To update docker images click on the 'Update images' button: +![openadmin docker update 1](/img/admin/openadmin_docker_update1.png) + +### Delete images + +To remove an unnecessary image, click the delete button next to the image and confirm in the pop-up modal: + +Step 1. | Step 2. +:-------------------------:|:-------------------------: +![openadmin docker delete image step 1](/img/admin/openadmin_docker_delete1.png) | ![openadmin docker delete image step 2](/img/admin/openadmin_docker_delete2.png) + + +:::info +image can not be deleted if it is in use. +::: + + +### Add images + +Currently images can only be added from terminal: [`docker pull`](https://docs.docker.com/reference/cli/docker/image/pull/) + +## Docker info + +To view current [docker system info](https://docs.docker.com/reference/cli/docker/system/info/) click on the ![openadmin docker info 1](/img/admin/openadmin_docker_info1.png) button: + +![openadmin docker info 1](/img/admin/openadmin_docker_info2.png) + + +## Total Resource Usage + +Under 'Docker Resource Usage Settings' you can configure the maximum memory and CPU percentages of server resources available for all users' Docker containers. + +![openadmin docker cpu settings](/img/admin/openadmin_docker_cpu.png) + +We advise against setting it above 90% ([BUG#117:Slow TTFB caused by the docker_limit.slice ckgroup ](https://github.com/stefanpejcic/OpenPanel/issues/117)). + diff --git a/website/versioned_docs/version-1.0.0/admin/services/log_viewer.md b/website/versioned_docs/version-1.0.0/admin/services/log_viewer.md new file mode 100644 index 00000000..4e85c104 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/services/log_viewer.md @@ -0,0 +1,62 @@ +--- +sidebar_position: 5 +--- + +# Log Viewer + +The *OpenAdmin > Services > View Log Files* feature enables Administrators to access and monitor logs for both OpenPanel and system services. + +![log viewer page](/img/admin/openadmin_services_logs.png) + +## How to View Log Files + +Navigate to *Services > View Log Files* + +Select the log file you would like to view and optionally number of lines from the file. + +After selecting a log file, two new buttons appear under the log content: +- *Delete* - will empty the file contents +- *Download* - will download the entire log file to your browser. + + +## How to add more files to OpenAdmin Log Viewer + +This functionality supports modularity by allowing customization of the log files displayed in the viewer. + + +List of default log files: https://raw.githubusercontent.com/stefanpejcic/openpanel-configuration/main/openadmin/config/log_paths.json + +To define custom log files for the viewer: + +1. Edit Configuration File: + Modify the file located at `/etc/openpanel/openadmin/config/log_paths.json`. This file should contain entries in JSON format where each key-value pair represents a log file name and its corresponding path. + + Here is an example of what the log_paths.json file might look like: + Simply edit the file `/etc/openpanel/openadmin/config/log_paths.json` and in it set the desired log files and names: + ```json + { + "Nginx Access Log": "/var/log/nginx/access.log", + "Nginx Error Log": "/var/log/nginx/access.log", + "OpenAdmin Access Log": "/var/log/openpanel/admin/access.log", + "OpenAdmin Error Log": "/var/log/openpanel/admin/error.log", + "OpenAdmin API Log": "/var/log/openpanel/admin/api.log", + "Custom Service Log": "/path/to/custom/service.log" + "Syslog": "/var/log/syslog" + } + ``` + Replace `/path/to/custom/service.log` with actual path to your custom log files. + +2. Verify JSON Validity: + Ensure that the log_paths.json file is formatted correctly as JSON. Any syntax errors in the JSON file will prevent the custom log files from appearing in the viewer. + You can check the validity of your JSON file by using a command-line JSON processor like jq: + ```bash + cat /etc/openpanel/openadmin/config/log_paths.json | jq + ``` + If the JSON is valid, `jq` will output the parsed JSON structure. If there are any errors, `jq` will indicate where the problem lies. + +3. View Custom Logs in Viewer: + After saving the changes, navigate to *OpenAdmin > Services > View Log Files* in the interface. The custom log files you specified in log_paths.json should now appear alongside the default logs. + +By following these steps, you can effectively customize the log files displayed in the OpenAdmin log viewer according to your specific requirements. This flexibility allows you to monitor logs from both standard services and any custom applications or services you integrate with OpenPanel. + + diff --git a/website/versioned_docs/version-1.0.0/admin/services/nginx.md b/website/versioned_docs/version-1.0.0/admin/services/nginx.md new file mode 100644 index 00000000..c8588764 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/services/nginx.md @@ -0,0 +1,142 @@ +--- +sidebar_position: 2 +--- + +# Nginx Configuration + +The *OpenAdmin > Services > Nginx Configuration* feature enables Administrators to view current Nginx status and edit configuration. + +![Nginx Configuration OpenAdmin](/img/admin/openadmin_services_nginx.png) + +## How to View Nginx Configuration + +Navigate to *Services > Nginx Configuration* + +Displayed information: +- *Status* - Current status of the Nginx service +- *Version* - Current version +- *Active Connections* - The current number of active client connections including Waiting connections. +- *Virtual Hosts* - The current number of virtualhosts (domain) files. +- *Modules* - Lists installed Nginx modules and compiled flags +- *Current Reading Connections* - The current number of connections where nginx is reading the request header. +- *Current Writing Connections* - The current number of connections where nginx is writing the response back to the client. +- *Current Waiting Connections* - The current number of idle client connections waiting for a request. +- *Total Accepted Connections* - The total number of accepted client connections since the Nginx service is active. +- *Total Handled Connections* - The total number of handled connections. Generally, the parameter value is the same as accepts unless some resource limits have been reached (for example, the worker_connections limit). +- *Total Requests* - The total number of client requests since the Nginx service is active. + +## How to stop/start Nginx + +Navigate to *Services > Nginx Configuration* + +Under the 'Actions' section click on the button: + +- *Start* - `docker exec nginx nginx start` +- *Stop* - `docker exec nginx nginx stop` +- *Restart* - `docker exec nginx nginx restart` +- *Reload* - `docker exec nginx nginx reload` +- *Validate* - `nginx -t` + + +## How to edit Nginx Configuration + +This section allows you to view and edit configuration for the Nginx webserver. + +Select the configuration file you would like to view or edit. + +After making changes click on the Save button. + +OpenPanel automatically backs up the configuration file. It runs nginx -t to validate the changes; if successful, the webserver reloads, applying the new configuration instantly. + +In case of an error in the configuration, OpenPanel displays the exact issue and reverts to the previous backup file. + + +### nginx.conf +nginx.conf is the main configuration file located in `/etc/nginx/nginx.conf` inside nginx container. + +```bash +/etc/openpanel/nginx/nginx.conf +``` + +![nginx main conf](/img/admin/nginx/nginx_mainconf.png) + + + +### Default VHost Template +The default nginx configuration file (in nginx container: `/etc/nginx/sites-available/default`). This file is used for domains that are pointed to the server IP but not currently added by any OpenPanel user. + +```bash +/etc/openpanel/nginx/vhosts/default.conf +``` +![nginx default conf](/img/admin/nginx/nginx_defaultconf.png) + +### Default Landing Page +Landing page is displayed on domains that have no website yet. +```bash +/etc/openpanel/nginx/default_page.html +``` +![nginx landing](/img/admin/nginx/nginx_landing.png) + + +### Suspended User Template +Suspended User Template is displayed on every domain for a suspended user. +```bash +/etc/openpanel/nginx/suspended_user.html +``` +![nginx suspended user](/img/admin/nginx/nginx_suspendeduser.png) + + +### Suspended Domain Template +Suspended Domain Template is displayed on suspended domains. +```bash +/etc/openpanel/nginx/suspended_website.html +``` +![nginx suspended website](/img/admin/nginx/nginx_suspendedwebsite.png) + +### Domain VHost Template +This file is copied for every new domain added by OpenPanel users. +```bash +/etc/openpanel/nginx/vhosts/domain.conf +``` +![nginx domain](/img/admin/nginx/nginx_domain.png) + +### Domain ModSecurity VHost Template +If ModSecurity is installed on the server, this file is copied for every new domain added by OpenPanel users. +```bash +/etc/openpanel/nginx/vhosts/domain.conf_with_modsec +``` +![nginx domain modsec](/img/admin/nginx/nginx_domainmodsec.png) + + +### Domain Nginx Docker VHost Template +For users with Nginx webserver, this file is copied inside their docker container for every new domain. +```bash +/etc/openpanel/nginx/vhosts/docker_nginx_domain.conf +``` +![docker_nginx_domain](/img/admin/nginx/docker_nginx_domain.png) + +### Domain Apache Docker VHost Template +For users with Apache webserver, this file is copied inside their docker container for every new domain. +```bash +/etc/openpanel/nginx/vhosts/docker_apache_domain.conf +``` +![docker_apache_domain](/img/admin/nginx/docker_apache_domain.png) + +### OpenPanel Proxy +This file affects all user domains and makes accessing services via user domains: `/openpanel` `/openadmin` `/webmail` +```bash +/etc/openpanel/nginx/vhosts/openpanel_proxy.conf +``` +![openpanel_proxy](/img/admin/nginx/openpanel_proxy.png) + + +### Error Pages +These error pages are shown to visitors when the domain configuration file is malformed or no response from docker container. +```bash +/etc/openpanel/nginx/vhosts/error_pages/ +``` +![error_pages](/img/admin/nginx/error_pages.png) + + + + diff --git a/website/versioned_docs/version-1.0.0/admin/services/status.md b/website/versioned_docs/version-1.0.0/admin/services/status.md new file mode 100644 index 00000000..5c72807a --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/services/status.md @@ -0,0 +1,14 @@ +--- +sidebar_position: 1 +--- + +# Services Status + +*OpenAdmin > Services > Status* allows Administrators to view current status and manage monitored system services or Docker containers. + +![services_page](/img/admin/openadmin_services_status.png) + +To add custom services to the list, edit the `/etc/openpanel/openadmin/config/services.json` file. + +Default OpenPanel services are actively monitored by the SentinelAI and on failure, OpenAdmin will automatically try to determinate the root cause and restart them. If you manually stop a service, you should also disable this feature from the [OpenAdmin Notifications](/docs/admin/notifications/) page. + diff --git a/website/versioned_docs/version-1.0.0/admin/settings/_category_.json b/website/versioned_docs/version-1.0.0/admin/settings/_category_.json new file mode 100644 index 00000000..22065aa6 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/settings/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Settings", + "position": 6, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/admin/settings/adminpanel.md b/website/versioned_docs/version-1.0.0/admin/settings/adminpanel.md new file mode 100644 index 00000000..cafe08e9 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/settings/adminpanel.md @@ -0,0 +1,26 @@ +--- +sidebar_position: 3 +--- + +# OpenAdmin + +Manage admin users, enable features and disable admin interface. + +![openadmin admin panel settings](/img/admin/adminpanel_openadmin_settings.png) + +The Settings > OpenAdmin page allows you to manage Admin users, enable/disable server-wide settings such as backups or domain access logs. + +## Admin Users + +For options on managing admin users please [visit this page](/docs/admin/users/openadmin). + +## Enable Features + +To enable a feature check it and click on save. + +## Disable Admin Panel +As an advanced security measure, you can temporarily disable access to the OpenAdmin interface. This will disable the admin panel and you can turn it back on when needed by executing the command `opencli admin on` + +## Server Information Report +Generate a report on server information and service status, and provide it when reaching out for support on [community.openpanel.co](https://community.openpanel.co/) + diff --git a/website/versioned_docs/version-1.0.0/admin/settings/general.md b/website/versioned_docs/version-1.0.0/admin/settings/general.md new file mode 100644 index 00000000..bb51e09d --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/settings/general.md @@ -0,0 +1,79 @@ +--- +sidebar_position: 1 +--- + +# General Settings + +Change ports, domain, enable ssl, etc. + +![openadmin general panel settings](/img/admin/adminpanel_general_settings.png) + +The General Settings page enables you to edit settings that affect both admin and user panel: + +- domain to access panels +- ports to be used +- update preferences + +## Set domain for OpenPanel + +To enable access to both OpenAdmin and OpenPanel through a domain name, such as srv.your-domain.com:2083, follow these three steps: + +1. Set hostname: + Set the desired subdomain as server hostname: + ``` + hostnamectl set-hostname server.example.net + ``` +2. Configure DNS: + Point the subdomain to the public IP of the server. + Use a tool such as https://www.whatsmydns.net/ to check that domain is pointed to server ip. + +3. Set in General Settings + Switch from IP to the domain name in *OpenAdmin > General Settings*. + +![openadmin set_domainname](/img/admin/adminpanel_domainname.png) + +## Set IP address for OpenPanel + +To access OpenPanel and OpenAdmin via server public IP address, choose the "Server IP address" option and click save. The modification is immediate, redirecting you to the designated IP:2087 for the admin panel upon saving. + +![openadmin set ip](/img/admin/adminpanel_serverip.png) + +## Change OpenPanel port + +Port configurations for OpenAdmin and OpenPanel interfaces can be modified from their default settings (2087 for OpenAdmin and 2083 for OpenPanel). + +![openadmin set port for openpanel](/img/admin/openpanel_settings.png) + +To change the port for the OpenPanel from the default `2083` to another value, you can easily set the desired port in the "OpenPanel Port" field. +It's important to note that the port must fall within the range of 1000-33000. + +## Change OpenAdmin port + +:::info +NOTE: Changing admin port from 2087 is currently not possible, as external tools such as WHMCS do not have option to set custom port. +::: + +![openadmin set port for openadmin](/img/admin/openadmin_settings.png) + + +# Force HTTPS + +Enabling the "Force HTTPS" option ensures that the panels are accessible via HTTPS, recommended for enhanced security features like CORS and header checks in the OpenPanel interface. +To activate HTTPS, select the "Force HTTPS" option; to deactivate, simply uncheck it. + +# Change /openpanel + +By default, when users add a domain, the addition of "/openpanel" to the domain URL will redirect them to the OpenPanel interface. However, you have the flexibility to customize this, such as changing it to "/awesome," allowing users to access their OpenPanel via "their-domain.com/awesome". + +To change the "/openpanel" to something else, simply set the value for the "OpenPanel is also available on:" field and click on save. Changes take effect instantly without service interruption. +![openadmin set custom path](/img/admin/openpanel_settings_available_on_openpanel.png) + +## Enable Updates + +The Update Preferences section provides the option to enable or disable Auto updates and Auto patches. Patches involve minor updates aimed at fixing bugs without introducing new features. On the other hand, Updates encompass major updates that introduce new features, potentially impacting existing functionality. + +![openadmin set update preferences](/img/admin/openpanel_settings_updates.png) + +Examples: +- Autoupdate: 1.0.2 will **NOT** be updated to 1.0.3 BUT 1.0.2 will be updated to 2.0.0 +- Autopatch: 1.0.2 will be updated to 1.0.3 BUT 1.0.2 will **NOT** be updated to 2.0.0 diff --git a/website/versioned_docs/version-1.0.0/admin/settings/openpanel.md b/website/versioned_docs/version-1.0.0/admin/settings/openpanel.md new file mode 100644 index 00000000..c1fcc238 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/settings/openpanel.md @@ -0,0 +1,163 @@ +--- +sidebar_position: 2 +--- + +# OpenPanel + +Edit nameservers, disable features and more. + +![openadmin openpanel settings](/img/admin/adminpanel_openpanel_settings.png) + +The OpenPanel Settings page allows you to edit settings and features available to users in their OpenPanel interface. + +## Branding + +To set a custom name visible in the OpenPanel sidebar and on login pages, enter the desired name in the "Brand name" option. Alternatively, to display a logo instead, provide the URL in the "Logo image" field and save the changes. + +## Set nameservers + +Before adding any domains its important to first create nameservers so that added domains will have valid dns zone files and be able to propagate. + +Configuring nameservers involves two steps: + +1. Create private nameservers (glue DNS records) for the domain through your domain registry. +2. Add the nameservers into the OpenPanel configuration. + +Here are tutorials for some popular domain providers: +- [Cloudflare](https://developers.cloudflare.com/dns/additional-options/custom-nameservers/zone-custom-nameservers/) +- [GoDaddy](https://uk.godaddy.com/help/add-custom-hostnames-12320) +- [NameCheap](https://www.namecheap.com/support/knowledgebase/article.aspx/768/10/how-do-i-register-personal-nameservers-for-my-domain/#:~:text=Click%20on%20the%20Manage%20option,5.) + +To add nameservers from OpenAdmin navigate to Settings > OpenPanel and set nameservers in ns1 and ns2 fields and click on save: + +![openpanel add nameservers](/img/admin/openadmin_add_ns.png) + +Or from terminal run commands: +```bash +opencli config update ns1 your_ns1.domain.com +opencli config update ns2 your_ns2.domain.com +``` + +:::info +After creating nameservers it can take up to 12h for the records to be globally accessible. Use a tool such as [whatsmydns.net](https://www.whatsmydns.net/) to monitor the status. + +If you still experience problems after the propagation process, then please check this guide: [dns server not responding to requests](https://community.openpanel.co/d/5-dns-server-does-not-respond-to-request-for-domain-zone). +::: + + +## Enable Features + +Administrators have the ability to enable or disable each feature (page) in the OpenPanel interface. To activate a feature, select it in the "Enable Features" section and click save. The change is immediate and restarts OpenPanel service. + +Once enabled, the feature becomes instantly available to all users, appearing in the OpenPanel interface sidebar, search results, and dashboard icons. + +![openpanel enable modules](/img/admin/openpanel_settings_modules.png) + +### DNS +DNS feature enables the [Domains > Edit DNS Zone](/docs/panel/domains/dns) feature for users to edit DNS records. + +### Notifications +Notifications allows users to edit their [Notifications Preferences](/docs/panel/account/notifications/) and receive emails. + +### Favorites +Favorites allows users to bookmark pages to [Favorites](/docs/panel/dashboard/#favorites). + +### phpMyAdmin +The phpMyAdmin feature allows users to access [phpMyAdmin](/docs/panel/databases/phpmyadmin/) with automatic login directly from the OpenPanel interface. When enabled, links to phpMyAdmin are added for each website in the [SiteManager](/docs/panel/applications/) and for every database on the [Databases](/docs/panel/databases/) page. + +### temporary_links +The temporary_links feature adds a 'Preview' button to websites in the SiteManager allowing users to [preview their site using a temporary openpanel.org subdomain for 15 minutes](/docs/panel/applications/wordpress/#preview-with-temporary-link). This is useful for testing when the domain's DNS is not yet pointed to the server or when the domain lacks an SSL certificate. + +### SSH +SSH feature enables the [SSH](//docs/panel/advanced/ssh/) page where users can enable/disable remote SSH access, view ssh port and change root password. + +### Crons +Crons feature enables the [Cronjobs](/dodocs/panel/advanced/cronjobs/) page where users can edit cronjobs via interface or directly edit the crontab file via text editor. + +### Backups +Backups feature enables users to access the [Files > Backups](/docs/panel/files/backups/) page where they can view current backups, restore or download them. + +### WordPress +WordPress feature [adds WordPress to the AutoInstaller](/docs/panel/applications/) and allows users to manage WordPress websites using the [SiteManager interface](/docs/panel/applications/wordpress/#wp-manager-overview). + +### PM2 +PM2 feature [adds NodeJS and Python Applications to the AutoInstaller](//docs/panel/applications/pm2/) and allows users to manage Python/NodeJS websites using the SiteManager interface. + +### Mautic +Mautic feature [adds Mautic to the AutoInstaller](/docs/panel/applications/) and allows users to manage Mautic websites from the SiteManager interface. + +### Flarum +Flarum feature [adds Flarum to the AutoInstaller](/docs/panel/applications/) and allows users to manage WordPress websites from the SiteManager interface. + +### Redis +Redis feature enables the [REDIS page](/docs/panel/caching/Redis/) where users can view REDIS port (`6379`), view logs, set memory limits and enable/disable service. + +### Memcached +Memcached feature enables the [Memcached page](/docs/panel/caching/Memcached/) where users can view Memcached port (`11211`), view logs, set memory limits and enable/disable service. + +### ElasticSearch +Memcached feature enables the [ElasticSearch page](/docs/panel/caching/elasticsearch/) where users can view ElasticSearch port (`9200`), view logs, set memory limits and enable/disable service. + +### Resource Usage +usage feature enables the [Resource Usage page](/docs/panel/analytics/resource_usage/) where users can view real-time information about the server's CPU and RAM usage. + +### WebTerminal +terminal feature enables the [WebTerminal page](/docs/panel/advanced/terminal/) where users can open web terminal or create a temporary session for 3rd parties. + +### Services +Services feature enables the [Server > Services Status page](docs/panel/advanced/server_settings/#service-status) where users can view their installed services, their current status and versions. + +### Configuration Editor +webserver feature enables the [Server > Nginx/Apache Configuration Editor page](/docs/panel/advanced/server_settings/#nginx--apache-settings) where users can edit the main configuration file for their webserver. Users with Nginx can edit nginx.conf file and users with Apache webserver edit the apache2.conf file. + +### Process Manager +process_manager feature enables the [Advanced > Process Manager](/docs/panel/advanced/process_manager/) page where users can view all running processes and kill (force stop the process). + +### IP Blocker +ip_blocker feature enables the [IP Blocker](/docs/panel/advanced/ip_blocker) page where users can block IP addresses per domain name. + +### Login History +login_history feature enables the [Account > Login History page](/docs/panel/account/login_history/) where users can view up to 10 last logins. + +### Activity Log +activity feature enables the [Account > Activity page](/docs/panel/analytics/account_activity/) where users can view their activity log. + +### 2FA +twofa feature enables the [Account > Two-Factor Authentication page](/docs/panel/account/2fa/) where users can enable or disable 2FA for enhanced security. + +### Domain Visitors +domains_visitors feature enables the [Analytics > Domain Visitors page](/docs/panel/account/2fa/) where users can view generated HTML reports from their domains access logs. + +### Disk Usage +disk_usage feature enables the [Files > Disk Usage page](//docs/panel/files/disk_usage/) where users can view disk usage per directory. + +### Inodes Explorer +inodes feature enables the [Files > Inodes Explorer page](//docs/panel/files/inodes_explorer/) where users can view their number of inodes per directory. + +### Fix Permissions +fix_permissions feature enables the [Files > Fix Permissions page](/docs/panel/files/fix_permissions/) where users can fix permissions and ownership issues per directory. + +### FTP +FTP feature [adds Files > FTP page](/docs/panel/files/FTP/) which allows users to create and manage FTP accounts. + +### Malware Scanner +malware_scan feature adds [Malware Scanner](/docs/panel/files/malware-scanner/) page to the Files section, where user can scan files using the [ClamAV®](https://www.clamav.net/) scanner. + + + +## Other settings + +Additional settings available in the Settings > OpenPanel page include: + +- **Logout URL:** Set the URL for redirecting users upon logout from the OpenPanel. +- **Avatar Type:** Choose to display Gravatar, Letter, or Icon as avatars for users. +- **Resource Usage Charts:** Opt to display 1, 2, or no charts on the Resource Usage page. +- **Default PHP Version:** Specify the default PHP version for domains added by users (users can override this setting). +- **Enable Password Reset:** Activate password reset on login forms (not recommended). +- **Display 2FA Nag:** Show a message in users' dashboards encouraging them to set up 2FA for added security. +- **Display How-to Guides:** Display how-to articles for users in their dashboard pages. +- **Login Records:** Set the number of login records to keep for each user. +- **Activities per Page:** Specify the number of activity items to display per page. +- **Usage per Page:** Specify the number of Resource Usage items to display per page. +- **Usage Retention:** Set the number of Resource Usage items to keep for each user. +- **Domains per Page:** Specify the number of domains to display per page. diff --git a/website/versioned_docs/version-1.0.0/admin/users/_category_.json b/website/versioned_docs/version-1.0.0/admin/users/_category_.json new file mode 100644 index 00000000..7c2c226f --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/users/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Users", + "position": 2, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/admin/users/openadmin.md b/website/versioned_docs/version-1.0.0/admin/users/openadmin.md new file mode 100644 index 00000000..0ce51286 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/users/openadmin.md @@ -0,0 +1,204 @@ +--- +sidebar_position: 1 +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +# OpenAdmin Users + +The admin panel has two user roles: + + +| Role | Description | +| ------------------ | ------------------------------------------------------------------------- | +| **Super Admin** | Has unrestricted privileges, created on OpenPanel installation. | +| **Admin** | Can not edit the SuperAdmin user, created from OpenAdmin or OpenCLI. | + + +## Manage Admin users + + + + + +Use *Settings > OpenAdmin* page to manage admin users that can access OpenAdmin interface: + +![openadmin admin users](/img/admin/openadmin_admin_page.png) + + + + +To list admin users use command: + +```bash +opencli admin list +``` + + + + +## Reset Admin Password + + + + + +To reset admin password click on the Edit button for that user from *Settings > OpenAdmin* page, then set the new password. + +![openadmin admin password](/img/admin/openadmin_admin_password.png) + + + + +To reset the password for an admin user: + +```bash +opencli admin password +``` + +Example, reset password for Super Admin user: +```bash +opencli admin password admin Pyl7_L2M1 +``` + +Example, reset password for regular Admin user: +```bash +opencli admin password filip Pyl7_L2M1 +``` + + + + + +## Create new Admin + + + + +To create new admin user click on the 'New' button in *Settings > OpenAdmin* page, set the username and password and click on *Save*. + +![openadmin admin new](/img/admin/openadmin_admin_new.png) + + + + + +To create new admin accounts: + +```bash +opencli admin new +``` + +Example: +```bash +opencli admin new filip Pyl7_L2M1 +``` + + + + + + + + +## Rename Admin user + + + + +To rename an Admin user, select the user on **Settings > OpenAdmin** page and click on the Edit button and set new username. + +![openadmin admin rename](/img/admin/openadmin_admin_rename.png) + + + + + +To rename admin user: + +```bash +opencli admin rename +``` + +Example: +```bash +opencli admin rename filip filip2 +``` + + + + +## Suspend Admin user + + + + +To suspend an Admin user, select the user on **Settings > OpenAdmin** page and click on the Edit button, then uncheck the **Active** status. + +![openadmin admin suspend](/img/admin/openadmin_admin_suspend.png) + + +To unsuspend an Admin user, select the user on **Settings > OpenAdmin** page and click on the Edit button, then **Unsuspend**. + + + +```bash +opencli admin suspend +``` + +Example: +```bash +opencli admin suspend filip +``` +--- + +To unsuspend admin user: +```bash +opencli admin unsuspend +``` + +Example: +```bash +opencli admin unsuspend filip +``` + + + + + +## Delete Admin user + + + + +Select the user on *Settings > OpenAdmin* page and click on the delete button then confirm. + +![openadmin admin delete](/img/admin/openadmin_admin_delete.png) + + + + + +From the terminal: + +To delete admin user: +```bash +opencli admin delete +``` + +Example: +```bash +opencli admin delete filip +``` + + + + + +:::info +The Super Admin user can not be deleted. +::: + + diff --git a/website/versioned_docs/version-1.0.0/admin/users/openpanel.md b/website/versioned_docs/version-1.0.0/admin/users/openpanel.md new file mode 100644 index 00000000..f8aa072e --- /dev/null +++ b/website/versioned_docs/version-1.0.0/admin/users/openpanel.md @@ -0,0 +1,646 @@ +--- +sidebar_position: 1 +--- + +# OpenPanel Users + +OpenPanel has a single user role named **User** that can only manage their docker container and inherits settings specified by the Admin user. + + +## List Users + + + + + +To access all OpenPanel users, navigate to OpenAdmin > Users. + +The Users page displays a table showcasing each user's Gravatar linked to their email address, username, assigned IP Address, hosting plan name, creation date of the account, a login link enabling user impersonation, and *manage* button to get detailed user overview. + +![openadmin users page](/img/admin/openadmin_users_page.png) + +Suspended users are highlighted in red, and no actions can be performed on a suspended user. + + + + +To list all users, use the following command: + +```bash +opencli user-list +``` + +Example output: +```bash +opencli user-list ++----+----------+-----------------+-----------------+---------------------+ +| id | username | email | plan_name | registered_date | ++----+----------+-----------------+-----------------+---------------------+ +| 52 | stefan | stefan | cloud_4_nginx_3 | 2023-11-16 19:11:20 | +| 53 | petar | petarc@petar.rs | cloud_8_nginx | 2023-11-17 12:25:44 | +| 54 | rasa | rasa@rasa.rs | cloud_12_nginx | 2023-11-17 15:09:28 | ++----+----------+-----------------+-----------------+---------------------+ +``` + +You can also format the data as JSON: + +```bash +opencli user-list --json +``` + + + +To list all users, use the following api endpoint: + +```bash +curl -X GET http://PANEL:2087/api/users -H "Authorization: Bearer JWT_TOKEN_HERE" +``` + + + + + +## Create Users + + + + + +To create a new user, click on the 'New User' button on the Users page. A new section will be displayed with a form where you can set the email address, username, generate a strong password, and assign a hosting plan for the user. + +![openadmin users add new](/img/admin/openadmin_add_new_user.gif) + + + + +To create a new user run the following command: + +```bash +opencli user-add +``` +Example: +```bash +opencli user-add filip masdhjkb213g filip@openadmin.co default_plan_apache +``` + +:::tip +Provide `generate` as password to generate a strong random password. +::: + + + +To create a new user use the following api call: + +```bash +curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN_HERE" -d '{"email": "EMAIL_HERE", "username": "USERNAME_HERE", "password": "PASSWORD_HERE", "plan_name": "PLAN_NAME_HERE"}' http://PANEL:2087/api/users +``` + +Example: +```bash +curl -X POST "http://PANEL:2087/api/users" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGcBns" -H "Content-Type: application/json" -d '{"username":"stefan","password":"s32dsasaq","email":"stefan@pejcic.rs","plan_name":"default_plan_nginx"}' +``` + +Example response: + +```json +{ + "response": { + "message": "Successfully added user stefan password: s32dsasaq" + }, + "success": true +} +``` + + + + +- The OpenPanel username must be 3 to 16 characters long and can only contain letters and numbers. +- The OpenPanel password must be 6 to 30 characters long and can include any characters except for single quotes (`'`) and double quotes (`"`). + + +## Reset User Password + + + + +To reset password for a user click on the Edit dropdown in table for that user in OpenAdmin > Users or from the individual User page click on "Edit information" and set the new password in the Password field then save. + +Step 1. | Step 2. +:-------------------------:|:-------------------------: +![openadmin users reset password step 1](/img/admin/openadmin_users_edit_information.png) | ![openadmin users reset password step 2](/img/admin/openadmin_users_edit_information_change_password.png) + + + + + +To reset the password for a OpenPanel user, you can use the `user-password` command: + +```bash +opencli user-password +``` + +Use the `--ssh` flag to also change the password for the SSH user in the container. + +Example: + +```bash +opencli user-password filip Ty7_K8_M2 --ssh +``` + + + + +To reset password for an OpenPanel user, use the following api call: + +```bash +curl -X PATCH http://PANEL:2087/api/users/USERNAME_HERE -H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN_HERE" -d '{"password": "NEW_PASSWORD_HERE"}' +``` + + + + +## Detailed User Information + +To view detailed information about a user, click on their Gravatar, username or the *Manage* button in the users table. + +![openadmin manage user button](/img/admin/openadmin_manage_button.png) + +This page shows detailed information about the account and provides tools to manage it. + +![openadmin users single user view](/img/admin/openadmin_users_single_user_view.png) + +The username is displayed at the top, along with the status of the Docker container for the user. Colors indicate whether the user is suspended or if the Docker container has encountered an error. Next to the username, there are buttons that allow you to suspend/unsuspend the user, delete the user, a configure button to edit user settings inside their Docker container, and a 'Login as user' button that automatically logs you into their OpenPanel interface. + +![openadmin users single user buttons](/img/admin/manage_single_user_btns.png) + +There are 4 widgets on top of the page: + +![openadmin users single user view 2](/img/admin/user_2.png) + +- **CPU Usage:** Shows the current CPU usage of all processes by the user, represented in percentage with color indicators. +- **Memory Usage:** Displays the current memory usage of the Docker container, represented in percentage with color indicators. +- **Disk Usage:** Shows the current disk usage of the user's Docker container, represented in percentage with color indicators. +- **IP Address:** Displays the public IPv4 address for the user, indicating whether the user has a Dedicated IP address assigned. + +---- + +The next section is divided into two parts: tabs and widgets. + +There are 6 tabs that allow you to view relevant information about the user's Docker container: + +### Docker + +![openadmin users single user view docker_tab](/img/admin/docker_tab.png) + +The Docker tab displays information about the Docker container for the user, including: + +- **Server:** Server on which the container is running. +- **Private IP:** Private IP address within the plan network that the container is using. +- **ID:** Unique container ID for that user container. +- **Memory Allocated:** RAM allocated to the user container (can be manually extended even beyond the plan limit). +- **CPU:** Number of CPU cores allocated to the container (can also be increased outside the plan limits). +- **Docker Image:** The name of the image (Nginx or Apache) that the container is using and the OS in the image (Debian or Ubuntu). +- **Hostname:** Hostname that the user sees via SSH in their Docker container (same as your server name). +- **Exposed Ports:** Ports inside the Docker container that accept incoming connections (e.g., ports for SSH, MySQL, REDIS, Apache). +- **Container Created:** Timestamp when the container was started (may be different from the account creation date). + + + + +### Disk Usage + + + + +*Disk Usage* section displays real-time disk usage for a user: + +- `/home/username` is used for all website files that user uploads to their home directory. +- `/var/lib/docker/devicemapper/mnt/..` is the total file system that the user's Docker container is limited to; this includes the OS itself, system services, databases, logs, etc. + +![openadmin users single user view du](/img/admin/du_tab.png) + + + + +To view disk usage summary for a user, run the following command: + +```bash +opencli user-disk summary +``` +Example: + +```bash +# opencli user-disk stefan summary + +-------------- disk usage -------------- +- 564M /home/stefan +- 864M /var/lib/docker/devicemapper/mnt/ac28d2b066f5ffcacf4510b042623f6a3c196bd4f5fb9e842063c5325e4d0184 +``` + + +To view detailed report of current disk usage for a user, run the following command: + +```bash +opencli user-disk detail +``` +Example: + +```bash +# opencli user-disk stefan detail +------------- home directory ------------- +- home directory: /home/stefan +- mountpoint: /home/stefan +- bytes used: 61440 +- bytes total: 10375548928 +- bytes limit: true +- inodes used: 20 +- inodes total: 1000960 +---------------- container --------------- +- container directory: /var/lib/docker/devicemapper/mnt/ac28d2b066f5ffcacf4510b042623f6a3c196bd4f5fb9e842063c5325e4d0184 +- bytes used: 1025388544 +- bytes total: 10726932480 +- inodes used: 20905 +- inodes total: 5242880 +- storage driver: devicemapper +``` + + +To view home directory and docker container paths for a user, run the following command: + + +```bash +opencli user-disk path +``` +Example: + +```bash +# opencli user-disk stefan path + +-------------- paths -------------- +- home_directory=/home/stefan +- docker_container_path=/var/lib/docker/devicemapper/mnt/ac28d2b066f5ffcacf4510b042623f6a3c196bd4f5fb9e842063c5325e4d0184 +``` + + + + + + + + +---- + +### Websites + +The Websites tab will display all domains and websites that the user has inside their Docker container. + +- **Domains table** showcases information such as domain name, root directory, and links to view the access log for the domain, edit DNS records, and edit the VirtualHost file for Nginx associated with the domain. +- **Websites table** displays the website URL, type (WordPress, Node.js, or Python), CMS version, and the time when the user installed or added it to the Site Manager interface. + +![openadmin users single user view websites tab](/img/admin/websites_tab.png) + +To view access log for a domain click on the 'View Access Log' link: + +![openadmin users single user view domain access log](/img/admin/admin_single_user_access.png) + +To view and edit DNS zone for a domain, click on the 'DNS Zone' link: + +![openadmin users single user view domain dns zone](/img/admin/admin_single_user_dns.png) + + +To view and edit Nginx configuration for a domain, click on the 'VirtualHosts' link: + +![openadmin users single user view domain vhosts file](/img/admin/admin_single_user_vhosts.png) + +---- + +### Services + +The Services tab displays a list of all services installed inside the user's Docker container, along with their current status. You have options to start, stop, or restart a service. + +![openadmin users single user view services tab](/img/admin/services_tab.png) + + +Services can be [pre-installed in a Docker image](https://dev.openpanel.co/images/), which is recommended for production to reduce the disk usage required for idle user accounts. Alternatively, they can be [installed later by an administrator](#) or by a user with [granted sudo access](#sudo-access). + + +---- + +### Backups + +The Backups tab displays a list of all available backups for the user account, showcasing backup content and sizes. + +![openadmin users single user view backups tab](/img/admin/backups_tab.png) + +---- + +### Usage + +The Usage tab will display Docker container stats for the user, including CPU usage, memory percentage used at that moment, network I/O, and total block I/O. This information is the same to what users can view from [OpenPanel > Resource Usage](/docs/panel/analytics/resource_usage/). + +![openadmin users single user view usage tab](/img/admin/usage_tab.png) + +---- + +### Activity + +The Activity tab shows the user's account activity log, providing the same information users can view from OpenPanel > Account Activity page. + +![openadmin users single user view activity tab](/img/admin/activity_tab.png) + +---- + +### General information + +General information widget displays the general information about the user and their container: + +![openadmin users single user view general info](/img/admin/general_info_tab.png) + +- **User ID:** Unique ID for the user account. +- **Email Address:** Current email address for the user. +- **Two Factor:** Indicates whether 2FA is enabled by the user. +- **Hosting Plan:** Name of the hosting plan assigned to the user. +- **IP Address:** Public IPv4 address for the user. +- **Server Location:** Flag and country name indicating the geolocation of the IP address. +- **Private IP:** Private IP address for the Docker container used in internal networking. +- **Setup Date:** Date when the user account was created. +- **Domains:** Number of domains that the user has added. +- **Websites:** Number of websites that the user has added. + +To edit any information for the user, click on the 'Edit Information' link, and a new modal will be displayed where you can change the username, email, plan, IP, or password. + +![openadmin users single user edit_info_tab](/img/admin/edit_info_tab.png) + +---- + +### Ports + +The Ports widget displays all ports published in the user's Docker container and corresponding randomly generated ports for the user on the host server machine. + +![openadmin users single user ports_tab](/img/admin/ports_tab.png) + + +## Suspend User + + + + +Suspending an account will immediately disable the user's access to the OpenPanel. This action involves pausing the user's Docker container and revoking access to their email, website, and other associated services. Please be aware of the immediate impact before proceeding. + +To suspend a user click on the Suspend button on that user page and click on 'Suspend' on the confirmation modal. + +Step 1. | Step 2. +:-------------------------:|:-------------------------: +![openadmin users suspend step 1](/img/admin/openadmin_users_suspend_1.png) | ![openadmin users suspend step 2](/img/admin/openadmin_users_suspend_2.png) + + + + +To suspend (temporary disable access) to user, run the following command: + +```bash +opencli user-suspend +``` +Example: + +```bash +opencli user-suspend filip +``` + + + + + +## Unsuspend User + + + + +To unsuspend a user click on the Unsuspend button for that user. + +![openadmin users add new](/img/admin/openadmin_users_unsuspend.png) + + + + +To unsuspend (enable access) to user, run the following command: + +```bash +opencli user-unsuspend +``` + +Example: +```bash +opencli user-unsuspend filip +``` + + + + + + +## Rename Username + + + + +To Rename a user, click on the 'Edit Information' link for the user, then change the address in 'Username' field and click on 'Save changes'. + +Step 1. | Step 2. +:-------------------------:|:-------------------------: +![openadmin users change username step 1](/img/admin/openadmin_users_edit_information.png) | ![openadmin users change username step 2](/img/admin/openadmin_user_change_username.png) + + + + +To change username for a user run the following command: + +```bash +opencli user-rename +``` + +Example: + +```bash +#opencli user-rename stefan pejcic +User 'stefan' successfully renamed to 'pejcic'. +``` + + + + + +## Change Email address + + + + +To change email address for a user, click on the 'Edit Information' link for the user, then change the address in 'Email address' field and click on 'Save changes'. + +Step 1. | Step 2. +:-------------------------:|:-------------------------: +![openadmin users change email step 1](/img/admin/openadmin_users_edit_information.png) | ![openadmin users change email step 2](/img/admin/openadmin_user_change_email.png) + + + + +To change email address for a user run the following command: + +```bash +opencli user-email +``` + +Example: + +```bash +#opencli user-email stefan stefan@pejcic.rs +Email for user stefan updated to stefan@pejcic.rs. +``` + + + + + + + +## Change IP address for User + + + + +To change IP address for a user, click on the 'Edit Information' link for the user, then select the new IP address and click on 'Save changes'. + +Step 1. | Step 2. +:-------------------------:|:-------------------------: +![openadmin users change ip address step 1](/img/admin/openadmin_users_edit_information.png) | ![openadmin users change ip address step 2](/img/admin/openadmin_users_edit_information_change_ip_address.png) + + + + +To assign unused IP address to a user run the following command: + +```bash +opencli user-ip +``` + +To assign IP address **that is currently used by another user** to this user, use the `--y` flag. + +Example: + +```bash +opencli user-ip filip 11.128.23.89 --y +``` + +To remove dedicated IP address from a user run: + +```bash +opencli user-ip delete +``` +Example: + +```bash +opencli user-ip filip delete +``` + + + + + + + + +## Grant Sudo Access + + + + +To allow users to install new services and have unrestricted access inside their container, click on the 'Configuration' button for the user, then check the 'Sudo Access' option. + +This will allow user to use the `su -` command and switch to root user inside their container. + +Step 1. | Step 2. +:-------------------------:|:-------------------------: +![openadmin users grant sudo step 1](/img/admin/openadmin_users_sudo1.png) | ![openadmin users grant sudo step 2](/img/admin/openadmin_users_sudo2.png) + + + + +To allow users to install new services and have unrestricted access inside their container, run the following command: + +```bash +opencli user-sudo +``` + +Example: + +```bash +# opencli user-sudo stefan enable +'su -' access enabled for user stefan. +``` + +To remove sudo access from user: + +```bash +opencli user-ip disable +``` +Example: + +```bash +# opencli user-sudo stefan disable +'su -' access disabled for user stefan. +``` + +To check current sudo status for user: + +```bash +opencli user-ip status +``` +Example: + +```bash +# opencli user-sudo stefan status +'su -' is enabled for user stefan. +``` + + + + + + + + +## Delete User + + + + + +To delete a user click on the delete button for that user, then type 'delete' in the confirmation modal and finally click on the 'Terminate' button. + +Step 1. | Step 2. +:-------------------------:|:-------------------------: +![openadmin users delete step 1](/img/admin/openadmin_users_delete_1.png) | ![openadmin users deletes step 2](/img/admin/openadmin_users_delete_2.png) + + + + +To delete a user and all his data run the following command: + +```bash +opencli user-delete +``` + +add `-y` flag to disable prompt. + +Example: +```bash +opencli user-delete filip -y +``` + + + + + +:::danger +This action is irreversible and will permanently delete all user data. +::: diff --git a/website/versioned_docs/version-1.0.0/articles/000_intro.md b/website/versioned_docs/version-1.0.0/articles/000_intro.md new file mode 100644 index 00000000..84e13622 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/articles/000_intro.md @@ -0,0 +1,26 @@ +--- +sidebar_position: 1 +--- + +# Guides and How-to's + +- [Import account from cPanel backup](/docs/articles/transfers/import-cpanel-backup-to-openpanel/) +- [How to change PHP execution limit for phpMyAdmin in OpenPanel](/docs/articles/databases/how-to-increase-php-execution-limit-for-phpmyadmin-in-openpanel/) +- [How to setup a Spring Boot Java Application on OpenPanel](/docs/articles/user-experience/how-to-setup-springboot-java-applicaiton-on-openpanel/) +- [Configuring MySQL or MariaDB per user in OpenPanel](/docs/articles/docker/how-to-set-mysql-mariadb-per-user-in-openpanel/) +- [Upgrading to OpenPanel Enterprise and activating License](/docs/articles/license/upgrade_to_openpanel_enterprise_and-activate_license/) +- [Setup Remote SMTP Server for OpenPanel](/docs/articles/user-experience/setup-remote-smtp-server-for-openpanel/#whitelist-the-remote-smtp-server) +- [How to Install Older Versions of Ioncube Loader Extensions for PHP](/docs/articles/user-experience/install-older-ioncube-loader-extensions/) +- [Disable PHP errors or increase upload limits per website](/docs/articles/user-experience/disable-php-errors-or-increase-upload-limits-per-website/) +- [Auto-start Services](/docs/articles/dev-experience/autostart-services/) +- [Customizing OpenPanel Interface (Branding and White-Label)](/docs/articles/dev-experience/customizing-openpanel-user-interface/) + + +# Extending OpenPanel +- [OpenPanel and FOSSBilling](/docs/articles/extensions/openpanel-and-fossbilling/) +- [OpenPanel and WHMCS](/docs/articles/extensions/openpanel-and-whmcs/) +- [Building a Custom Docker image: pre-install IonCube Loader](/docs/articles/docker/building_a_docker_image_example_include_php_ioncubeloader/) + + +# Troubleshooting +- [High physical memory usage for OpenPanel account](/docs/articles/docker/high-memory-usage-for-openpanel-user/) diff --git a/website/versioned_docs/version-1.0.0/articles/accounts/_category_.json b/website/versioned_docs/version-1.0.0/articles/accounts/_category_.json new file mode 100644 index 00000000..179b0975 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/articles/accounts/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Account Administration", + "position": 9, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/articles/accounts/forbidden-usernames.md b/website/versioned_docs/version-1.0.0/articles/accounts/forbidden-usernames.md new file mode 100644 index 00000000..d1d7898d --- /dev/null +++ b/website/versioned_docs/version-1.0.0/articles/accounts/forbidden-usernames.md @@ -0,0 +1,113 @@ +# Reserved and Invalid Usernames + +## Basic restrictions + + +### OpenPanel + +OpenPanel applies the following rules when you create or modify a OpenPanel username: + +Usernames may **only** use lowercase letters (`a–z`) and digits (`0–9`). +- Usernames cannot contain less than **3** characters. +- Usernames cannot contain more than **16** characters. + +### OpenAdmin +OpenAdmin applies the following rules when you create or modify an admin username: + +Usernames may **only** use lowercase letters (`a–z`) and digits (`0–9`). +- Usernames cannot contain less than **5** characters. +- Usernames cannot contain more than **30** characters. + +Passwords may **only** use lowercase letters (`a–z`) and digits (`0–9`). +- Usernames cannot contain less than **5** characters. +- Usernames cannot contain more than **30** characters. + +### SSH +OpenAdmin applies the following rules when you modify an SSH password: + +Passwords may **only** use lowercase letters (`a–z`) and digits (`0–9`). +- Passwords cannot contain less than **8** characters. +- Passwords cannot contain more than **20** characters. + +### MySQL / MariaDB +OpenPanel applies the following rules when you create databases and users: + +Database names may **only** use lowercase letters (`a–z`) and digits (`0–9`). +- Database name cannot contain less than **1** character. +- Database name cannot contain more than **64** characters. + + +Database users may **only** use lowercase letters (`a–z`) and digits (`0–9`). +- Usernames cannot contain less than **1** characters. +- Usernames cannot contain more than **32** characters. + + +Database User's Passwords may **only** use lowercase letters (`a–z`), underscores (`_`) and digits (`0–9`). +- Passwords cannot contain less than **8** characters. +- Passwords cannot contain more than **32** characters. + + +### FTP +OpenPanel applies the following rules when you create FTP sub-accounts: + +FTP sub-users **must end** with dot (`.`) followed by the OpenPanel username - example: `ftpuser.openpaneluser`. +- Usernames cannot contain less than **3** characters. +- Usernames cannot contain more than **32** characters. + + +FTP User's Passwords must contain **at least one** uppercase letters (`A-Z`), lowercase letters (`a–z`), digits (`0–9`) and special symbols (`!`, `.`, `,`, `@`, `#`, `_`, `-`). +- Passwords cannot contain less than **8** characters. +- Passwords cannot contain more than **32** characters. + +### Emails + +OpenPanel applies the following rules when you create email accounts: + +Email accounts may **only** use lowercase letters (`a–z`), dashes (`-`), underscores (`_`) and digits (`0–9`). +Email accounts **must contain** `@` symbol followed by the domain name - example: `account@example.net`. +- Usernames cannot contain less than **1** character. +- Usernames cannot contain more than **32** characters. + +Email accounts passwords can contain **only** uppercase letters (`A-Z`), lowercase letters (`a–z`), underscores (`_`) and digits (`0–9`). +- Passwords cannot contain less than **8** characters. +- Passwords cannot contain more than **32** characters. + + +## Reserved usernames + +OpenPanel reserves some usernames for the system’s use, and you cannot use them for OpenPanel accounts. This list of reserved usernames can grow over time, and new versions of OpenPanel may add to this list. + +OpenPanel checks the following file to determine whether to reserve or restrict a username: + +```bash +/etc/openpanel/openadmin/config/forbidden_usernames.txt +``` + +Currently reserved usernames: + +- test +- restart +- reboot +- shutdown +- exec +- root +- admin +- ftp +- lsws +- litespeed +- 1000 +- vsftpd +- httpd +- apache2 +- apache +- docker +- podman +- nginx +- php +- mysql +- mysqld +- www-data +- openpanel +- openadmin + +To reserve a certain username, simply add it to the forbidden_usernames.txt file. diff --git a/website/versioned_docs/version-1.0.0/articles/backups/_category_.json b/website/versioned_docs/version-1.0.0/articles/backups/_category_.json new file mode 100644 index 00000000..e4c8dfb4 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/articles/backups/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Backups", + "position": 2, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/articles/databases/_category_.json b/website/versioned_docs/version-1.0.0/articles/databases/_category_.json new file mode 100644 index 00000000..e111dfc5 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/articles/databases/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Databases", + "position": 4, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/articles/databases/how-to-increase-php-execution-limit-for-phpmyadmin-in-openpanel.md b/website/versioned_docs/version-1.0.0/articles/databases/how-to-increase-php-execution-limit-for-phpmyadmin-in-openpanel.md new file mode 100644 index 00000000..f3313a40 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/articles/databases/how-to-increase-php-execution-limit-for-phpmyadmin-in-openpanel.md @@ -0,0 +1,45 @@ +# How to change PHP execution limit for phpMyAdmin in OpenPanel + +phpMyAdmin runs on [PHP version that user sets as default php version](/docs/panel/advanced/server_settings/#set-default-php-version) in OpenPanel. + +But due to [phpmyadmin minimum requirements](https://docs.phpmyadmin.net/en/latest/require.html#php), if PHP version is less than 8.0 then [the default php version defined by the administrator](/docs/admin/settings/openpanel/#other-settings) will be used instead. + +To increase limits for the phpMyAdmin interface, edit the php.ini file of the version it is running on. + +### Step 1. Check PHP version + +There are 2 ways to check which PHP version is the phpMyAdmin interface running: + +1. From phpMyAdmin interface + +Login to phpMyAdmin from the OpenPanel interface and note the version under 'Server Settings': + +![phpmyadmin check php version](https://i.postimg.cc/bw1TsZKG/2024-08-02-19-10.png) + +2. From OpenPanel > Process Manager + +Login to OpenPanel and navigate to Process Manager to view under which PHP version is the phpMyAdmin interface running. + +![process manager check php version](https://i.postimg.cc/2jXTJRQ5/2024-08-02-19-07.png) + +### Step 2. Edit php.ini file + +From OpenPanel navigate to Server Settings > PHP > PHP.INI editor and select that PHP version. Then make the changes, for example increase PHP `max_execution_time` value, and click on save to apply changes. + +![phpini editor openpanel](https://i.postimg.cc/z8BckpCB/2024-08-02-19-09.png) + +### Step 3. Kill phpMyAdmin processes + +Since phpMyAdmin is running in its own webserver, we need to terminate its current processes in order to start it again with the new limits applied. + +To do this, navigate to OpenPanel > Process Manager and kill all processes that mention phpMyAdmin. + +![openpanel process kill](https://i.postimg.cc/KvkQhqfD/2024-08-02-19-08.png) + +### Step 4. Start phpMyAdmin + +Finally, start phpMyAdmin again with new limits, by opening phpMyAdmin from the OpenPanel menu. + +![phpmyadmin menu item in openpanel](https://i.imgur.com/c2nA3vg.png) + +Limits have been increased and you can proceed. diff --git a/website/versioned_docs/version-1.0.0/articles/dev-experience/_category_.json b/website/versioned_docs/version-1.0.0/articles/dev-experience/_category_.json new file mode 100644 index 00000000..cd8fce5c --- /dev/null +++ b/website/versioned_docs/version-1.0.0/articles/dev-experience/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Developer Experience", + "position": 16, + "link": { + "type": "generated-index" + } +} diff --git a/website/versioned_docs/version-1.0.0/articles/dev-experience/autostart-services.md b/website/versioned_docs/version-1.0.0/articles/dev-experience/autostart-services.md new file mode 100644 index 00000000..dc103ef8 --- /dev/null +++ b/website/versioned_docs/version-1.0.0/articles/dev-experience/autostart-services.md @@ -0,0 +1,57 @@ +# Auto-start Services + +Services in OpenPanel start only when they are actually needed, to avoid wasting resources. + +## Auto-start Services in OpenAdmin + +Upon installing OpenPanel, only the following services are started: + +- **OpenAdmin** – For managing the entire server and users. +- **Docker** – Needed for all other containerized services and user accounts. +- **Database** – MySQL database is created and initialized. This database holds Plans, Websites, Domains, and Users. +- **Firewall** – CSF or UFW are installed and started. + +Other services are installed and started only when required. + +| Service | Installed | Auto-start | +|------------------------|-----------|---------------------------| +| OpenAdmin | ✔ | On installation | +| Docker | ✔ | On installation | +| Database | ✔ | On installation | +| ConfigServer Firewall | ✔ | On installation | +| Uncomplicated Firewall | ✘ | On installation | +| OpenPanel | ✘ | After adding first user account | +| BIND9 | ✘ | After adding first domain name | +| Certbot | ✘ | After adding first domain name | +| ClamAV | ✘ | When enabled by Administrator | +| Dovecot & Postfix | ✘ | When enabled by Administrator | +| FTP | ✘ | When enabled by Administrator, after first FTP account is created | + +## Auto-start Services in OpenPanel + +Using the `/etc/entrypoint.sh` for each user, Administrators define which services to auto-start when their container is started. The container is started after a user is created and on every Docker service restart. + +Similar to OpenAdmin, services in OpenPanel also start only when they are needed. This allows for better resource management. An idle account will use around 15MB of RAM, while an account with domains, websites, and MySQL databases may use up to 1GB of RAM. + +Services that auto-start for each user: + +| Service | Installed | Auto-start | +|--------------------|-----------|---------------------------------------------------| +| Apache / Nginx | ✔ | After the user adds the first domain | +| SSH | ✘ | After the user enables remote SSH access | +| REDIS | ✘ | After the user installs and activates it | +| Memcached | ✘ | After the user installs and activates it | +| Elasticsearch | ✘ | After the user installs and activates it | +| MongoDB | ✘ | After the user installs and activates it | +| MySQL / MariaDB | ✔ | After the user adds at least 1 database | +| Cron | ✔ | After the user adds at least 1 cron job | +| PHP 8.3 | ✘ | After the user installs and sets it for at least 1 domain | +| PHP 8.2 | ✔ | After the user adds at least 1 domain | +| PHP 8.1 | ✘ | After the user installs and sets it for at least 1 domain | +| PHP 8.0 | ✘ | After the user installs and sets it for at least 1 domain | +| PHP 7.4 | ✘ | After the user installs and sets it for at least 1 domain | +| PHP 7.3 | ✘ | After the user installs and sets it for at least 1 domain | +| PHP 7.2 | ✘ | After the user installs and sets it for at least 1 domain | +| PHP 7.1 | ✘ | After the user installs and sets it for at least 1 domain | +| PHP 7.0 | ✘ | After the user installs and sets it for at least 1 domain | +| PHP 5.6 | ✘ | After the user installs and sets it for at least 1 domain | diff --git a/website/versioned_docs/version-1.0.0/articles/dev-experience/customizing-openpanel-user-interface.md b/website/versioned_docs/version-1.0.0/articles/dev-experience/customizing-openpanel-user-interface.md new file mode 100644 index 00000000..ece5bebc --- /dev/null +++ b/website/versioned_docs/version-1.0.0/articles/dev-experience/customizing-openpanel-user-interface.md @@ -0,0 +1,228 @@ +# Customizing OpenPanel Interface (Branding and White-Label) + +Everything in OpenPanel is modular and can easily be modified or disabled without breaking the rest of the functionalities. + +To customize OpenPanel, you have the following options: + +- [Display personalized message per user](#personalized-messages) +- [Enable/disable features and pages from the OpenPanel interface](#enabledisable-features) +- [Set pre-installed services for users](#set-pre-installed-services) +- [Customize Default, Suspended User and Suspended Domain pages](@customize-templates) +- [Localize the interface](#localize-the-interface) +- [Set custom branding](#set-custom-branding) +- [Set a custom color scheme](#set-a-custom-color-scheme) +- [Replace How-to articles with your knowledge base](#replace-how-to-articles-with-your-knowledge-base) +- [Customize any page](#edit-any-page-template) +- [Customize login page](#customize-login-page) +- [Add custom CSS or JS code to the interface](#create-custom-pages) +- [Create a custom module for OpenPanel](#create-custom-module) +- [Self-hosted temporary links for SiteManager](/docs/articles/dev-experience/selfhosted-temporary-links-api/) +- [Self-hosted screenshots for SiteManager](/docs/articles/dev-experience/selfhosted-screenshots-api/) + + + +## Personalized messages + +Administrators can set a custom message to be displayed for any OpenPanel user by creating/editing file `/etc/openpanel/openpanel/core/users/USERNAME/custom_message.html` file. Both plain text and HTML code are accepted: + +![custom_message_per_user](https://i.postimg.cc/5xTqkddZ/2024-09-05-15-52.png) + +## Enable/disable features + +Administrators have the ability to enable or disable each feature (page) in the OpenPanel interface. To activate a feature, navigate to [OpenAdmin > Settings > OpenPanel](/docs/admin/settings/openpanel/#enable-features) and select service name in the "Enable Features" section and click save. + +Once enabled, the feature becomes instantly available to all users, appearing in the OpenPanel interface sidebar, search results, and dashboard icons. + + + + +## Set pre-installed services + +OpenPanel uses [docker images](https://dev.openpanel.com/images/) as the base for each hosting plan. Based on the docker image, different services can be set per plan/user. For examples, we provide 2 docker images, one that has nginx pre-installed and another that uses apache. By creating a custom docker image, you can set in that image what to be pre-installed when you create a new user, for example, set mariadb instead of mysql or install php ioncube loader extension. + +To add a custom service pre-installed for users: + +- [Create a custom docker image](/docs/articles/docker/building_a_docker_image_example_include_php_ioncubeloader/) +- [Create a new hosting plan with that docker image](/docs/admin/plans/hosting_plans/#create-a-plan) +- [Create a new user on that plan](/docs/admin/users/openpanel/#create-users) + + + +## Localize the interface + +OpenPanel is localization ready and can easily be translated into any language. + +OpenPanel is shipped with the EN locale, [additional locales can be installed by the Administrator](https://dev.openpanel.com/localization.html#How-to-translate). + +To install additional locales (replace `de-de` with your locale): + +```bash +opencli locale de-de +``` + +To translate OpenPanel to another language follow these steps: + +1. Fork [this repository](https://github.com/stefanpejcic/openpanel-translations). +2. Copy `en_us` to your locale e.g. `es_es` +3. Translate the `messages.pot` file +4. Send a [pull request](https://github.com/stefanpejcic/openpanel-translations/pulls) + + + + +## Set custom branding + +Custom brand name and logo can be set from [OpenAdmin > Settings > OpenPanel](/docs/admin/settings/openpanel/#branding) page. + +To set a custom name visible in the OpenPanel sidebar and on login pages, enter the desired name in the "Brand name" option. Alternatively, to display a logo instead, provide the URL in the "Logo image" field and save the changes. + + + +## Customize Templates + +You can customize all templates that are displayed to users: + +- [Domain VHost Template](/docs/admin/services/nginx/#domain-vhost-template) +- [Default Landing Page](/docs/admin/services/nginx/#default-landing-page) +- [Suspended User Template](/docs/admin/services/nginx/#suspended-user-template) +- [Suspended Domain Template](/docs/admin/services/nginx/#suspended-domain-template) +- [Error Pages](/docs/admin/services/nginx/#error-pages) + +## Create OpenPanel Module + +To create a custom module (plugin) for OpenPanel follow this guide: [Example Module](https://dev.openpanel.com/modules/#Example-Module) + +## Set a custom color scheme + +To set a custom color-scheme for OpenPanel interface, edit the `/etc/openpanel/openpanel/custom_code/custom.css` file and in it set your preferred color scheme. + +```bash +nano /etc/openpanel/openpanel/custom_code/custom.css +``` + +Set the custom css code, save and restart openpanel to apply changes: + +```bash +cd /root && docker compose up -d openpanel +``` + +Example: + +![custom_css_code](https://i.postimg.cc/YprhHZhg/2024-06-18-15-04.png) + + + + + +## Replace How-to articles with your knowledge base + +[OpenPanel Dashboard page](/docs/panel/dashboard) displays [How-to articles](/docs/panel/dashboard/#how-to-guides) from the OpenPanel Docs, however these can be changed to display your knowledgebase articles instead. + +Edit the file `/etc/openpanel/openpanel/conf/knowledge_base_articles.json` and in it set your links: + +```json +{ + "how_to_topics": [ + {"title": "How to install WordPress", "link": "https://openpanel.com/docs/panel/applications/wordpress#install-wordpress"}, + {"title": "Publishing a Python Application", "link": "https://openpanel.com/docs/panel/applications/pm2#python-applications"}, + {"title": "How to edit Nginx / Apache configuration", "link": "https://openpanel.com/docs/panel/advanced/server_settings#nginx--apache-settings"}, + {"title": "How to create a new MySQL database", "link": "https://openpanel.com/docs/panel/databases/#create-a-mysql-database"}, + {"title": "How to add a Cronjob", "link": "https://openpanel.com/docs/panel/advanced/cronjobs#add-a-cronjob"}, + {"title": "How to change server TimeZone", "link": "https://openpanel.com/docs/panel/advanced/server_settings#server-time"} + ], + "knowledge_base_link": "https://openpanel.com/docs/panel/intro/?source=openpanel_server" +} +``` + + +## Edit any page template + +Each OpenPanel template code is open and can easily be edited by just editing the HTML code. + +Templates are located inside a Docker container named `openpanel`, so you first need to find the template that has the code that you want to edit. + +For example, to edit the sidebar and hide the OpenPanel logo, follow these steps: + +1. Create a new folder/file locally for your modified code. + ```bash + mkdir /root/custom_template/ + ``` +2. Copy the existing template code. + ```bash + docker cp openpanel:/usr/local/panel/templates/partials/sidebar.html /root/custom_template/sidebar.html + ``` +3. Edit the code. + +4. Configure OpenPanel to use your template. + Edit the `/root/docker-compose.yml` file and in it set your file to overwrite the original template: + ```bash + nano /root/docker-compose.yml + ``` + and in the file under [openpanel > volumes](https://github.com/stefanpejcic/openpanel-configuration/blob/180c781bfb7122c354fd339fbee43c1ce6ec017f/docker/compose/new-docker-compose.yml#L31) set local path and original: + ```bash + - /root/custom_theme/sidebar.html:/usr/local/panel/templates/partials/sidebar.html + ``` +6. Restart OpenPanel to apply the new template. + ```bash + cd /root && docker compose up -d openpanel + ``` + + +## Customize login page + + +OpenPanel login page template code is located at `/usr/local/panel/templates/user/login.html` inside the docker container. + +To edit the login page: + +1. Create a new folder/file locally for your modified code. + ```bash + mkdir /root/custom_template/ + ``` +2. Copy the existing template code. + ```bash + docker cp openpanel:/usr/local/panel/templates/user/login.html /root/custom_template/login.html + ``` +3. Edit the code. + +4. Configure OpenPanel to use your template. + Edit the `/root/docker-compose.yml` file and in it set your file to overwrite the original template: + ```bash + nano /root/docker-compose.yml + ``` + and in the file under [openpanel > volumes](https://github.com/stefanpejcic/openpanel-configuration/blob/180c781bfb7122c354fd339fbee43c1ce6ec017f/docker/compose/new-docker-compose.yml#L31) set local path and original: + ```bash + - /root/custom_theme/login.html:/usr/local/panel/templates/user/login.html + ``` +6. Restart OpenPanel to apply the new login template. + ```bash + cd /root && docker compose up -d openpanel + ``` + + +## Add custom CSS or JS code + +To add custom CSS code to the OpenPanel interface, edit the file `/etc/openpanel/openpanel/custom_code/custom.css`: + +```bash +nano /etc/openpanel/openpanel/custom_code/custom.css +``` + +To add custom JavaScript code to the OpenPanel interface, edit the file `/etc/openpanel/openpanel/custom_code/custom.js`: + +```bash +nano /etc/openpanel/openpanel/custom_code/custom.js +``` + +To insert custom code within the `` tag of the OpenPanel interface, modify the content of the file located at `/etc/openpanel/openpanel/custom_code/in_header.html` and include your custom code within it: + +```bash +nano /etc/openpanel/openpanel/custom_code/in_header.html +``` + +To insert custom code within the `