| apache-remove.sh |
Useful as a manual cleanup helper, but unsafe as automation; replace with an Ansible package/service task with explicit confirmation. |
| backup.sh |
Good intent, weak backup model; replace with restic/borg or an Ansible backup role with retention and restore docs. |
| baseConfig.sh |
Too broad and interactive for production; split into Ansible roles for SSH, MOTD, firewall, users, and system baseline. |
| certbot.sh |
Useful goal, but manual and fragile; prefer Caddy automatic TLS or Certbot managed by Ansible/systemd timers. |
| colors.sh |
Fine as a shell helper, but not product value; keep only if scripts remain, otherwise remove. |
| curl-install.sh |
Too trivial as a standalone script; replace with package-manager tasks in Ansible/cloud-init. |
| deploy-utility.sh |
Risky because it embeds credential-based git clone and manual build flow; replace with CI/CD, deploy keys, Docker images, or Dokku/Coolify. |
| dns-change.sh |
Opens an editor and applies netplan manually; replace with cloud-init or Ansible netplan templates. |
| docker-compose-install.sh |
Installs obsolete Docker Compose v1 binary; replace with Docker Compose v2 plugin from official Docker packages. |
| docker-install.sh |
Reasonable goal but imperative and partly interactive; replace with the official Docker Ansible role or documented apt repository tasks. |
| dotnet5-install.sh |
Obsolete runtime path; replace with current Microsoft package repository setup or avoid installing SDKs on production hosts. |
| firewall-config.sh |
Useful baseline, but too generic and can lock users out; replace with Ansible UFW role with explicit allowed ports and dry-run review. |
| git-install.sh |
Too trivial; include git in a package list managed by Ansible/cloud-init. |
| gitlab-install-dockerCompose.sh |
Complex, outdated, and manually generated compose; prefer official GitLab Docker Compose docs or a maintained Ansible role. |
| gitlab-install.sh |
Uses `curl |
| gitlab-runner-install.sh |
Direct binary install without version pinning; replace with official GitLab Runner repository/package automation. |
| ip-current.sh |
Useful tiny helper, but external DNS dependent; replace with provider metadata API or make it a documented diagnostic command. |
| mailu.sh |
Too large and risky as custom automation; prefer Mailu's official compose generator/docs or a dedicated Ansible role. |
| mongodb-install.sh |
Obsolete MongoDB 4.4/Ubuntu focal setup; replace with current MongoDB official docs or managed database. |
| motd-add.sh |
Useful but low-value; replace with Ansible template/symlink tasks for /etc/update-motd.d. |
| nestjs-install.sh |
Global npm install is not server provisioning; keep in developer docs or use project-local toolchain. |
| nginx-add-app.sh |
Good practical need, but string-generates Nginx config interactively; replace with Caddy, Traefik labels, or an Ansible Nginx template plus nginx -t handler. |
| nginx-config-base.sh |
Good hardening intent, but asks the user to edit manually; replace with a tested Nginx hardening template. |
| nginx-install.sh |
Useful setup step, but too interactive; replace with Ansible package/service tasks and separate Apache conflict handling. |
| nginx-remove-app.sh |
Useful cleanup helper, but deletion is interactive and fragile; replace with Ansible state=absent for site config and symlink. |
| nginx-restart.sh |
Good simple validation pattern; keep as a helper or replace with an Ansible handler that runs nginx -t before reload. |
| nginx-services-check.sh |
Useful diagnostic idea, but parser is fragile; replace with health checks, monitoring, or a structured config parser. |
| node-install.sh |
Obsolete Node 14 install path; replace with fnm/nvm for dev or NodeSource/current LTS automation for servers. |
| password-disable.sh |
Useful SSH hardening goal, but custom and risky; replace with Ansible-managed sshd config and user/group policy. |
| password-enable.sh |
Useful recovery helper, but risky; replace with documented Ansible rollback or break-glass procedure. |
| password-generate.sh |
Useful small helper; keep as a utility or replace with openssl rand documented directly. |
| pgAdmin.sh |
Uses deprecated apt-key pattern; prefer official current pgAdmin docs or containerized pgAdmin. |
| pm2-install.sh |
Installs global PM2 without app lifecycle model; prefer systemd units, Docker, or a managed PaaS like Dokku/Coolify. |
| serverFingerPrint-get.sh |
Useful security check; keep concept, but document SSH fingerprint verification in install flow. |
| ssh-port-change.sh |
Useful goal, but changing SSH port is high-risk; replace with Ansible task that opens firewall first, validates sshd, then reloads. |
| ssh-port-current.sh |
Useful helper, but parsing CLI output is fragile; replace with direct sshd config parsing or sshd -T. |
| ssh-restart.sh |
Too blunt; replace with sshd -t validation followed by reload/restart handler. |
| sshKey-config.sh |
Useful setup goal, but can generate and print private keys; replace with Ansible authorized_key and external key management. |
| ssl-check.sh |
Useful diagnostic helper; replace or complement with Certbot/Caddy renewal checks and monitoring. |
| ssl-upload.sh |
Manually copies certificates and locks directories; replace with ACME automation, Caddy, Certbot DNS challenge, or secrets management. |
| timeshift-createBackup.sh |
Useful for desktop-like snapshots, less ideal for servers; replace with filesystem snapshots or restic/borg backups. |
| timeshift-install.sh |
PPA-based server backup dependency is questionable; prefer distro-native snapshots or restic/borg. |
| ufw-mailu.sh |
Useful Mailu-specific port set, but hard-coded; replace with Mailu docs encoded as Ansible UFW variables. |
| update.sh |
Runs broad apt upgrade/dist-upgrade; replace with controlled unattended-upgrades or Ansible apt tasks with maintenance windows. |
| user-add-restrict-docker-deploy.sh |
Useful deployment-user idea, but custom and fragile; replace with Docker contexts, deploy users managed by Ansible, or Dokku/Coolify. |
| user-add-restrict-docker.sh |
Ambitious rootless Docker workflow, but risky and too stateful; replace with official rootless Docker docs automated by Ansible. |
| user-add-restrict.sh |
Useful concept, but rbash restrictions are brittle; prefer least-privilege users, forced commands, containers, or SSH certificate policy. |
| user-add.sh |
Common need, but destructive prompts and custom flow are risky; replace with Ansible user and authorized_key modules. |
| user-config.sh |
Useful combined user hardening, but too broad; split into explicit Ansible tasks for groups, SSH, password, and shell policy. |
| user-convert-to-restrict.sh |
rbash/chattr-based restriction is brittle and hard to support; prefer containers, forced commands, sudoers rules, or systemd isolation. |
| user-delete.sh |
Risky destructive operation; replace with Ansible state=absent plus explicit backup/retention policy. |
| user-get-homeDir.sh |
Useful helper, but not needed in config management; use getent directly or Ansible facts. |
| user-group-number.sh |
Useful tiny helper for rootless Docker, but fragile parsing; use id -u or Ansible facts. |
| user-logout-sessions.sh |
Force-kills user sessions; replace with documented maintenance workflow or safer loginctl terminate-user. |
| user-remove-restrict.sh |
Useful recovery idea, but tightly coupled to brittle restriction model; replace with rollback tasks in Ansible. |
| user-ssh-access.sh |
Useful SSH access control goal, but parses CLI output and rewrites sshd indirectly; replace with sshd_config template and validation. |
| users-docker-services-check.sh |
Useful diagnostic idea; replace with Docker health checks, systemd units, or monitoring. |
| utility.sh |
Useful shared shell helpers, but shell library design is hard to test; replace with Ansible modules or a typed CLI library. |
| welcome.sh |
Low-value helper; replace with standard MOTD scripts or remove. |
Project Audit: Should Servess Be Continued?
Verdict
I do not recommend continuing this project as a general-purpose public server management product in its current form.
I do recommend preserving the useful ideas and either:
Strengths
Weaknesses
HamidMolareza/Servessand release artifacts that do not exist in the currentPayadel/servessrepository.sudo rm,curl | bash, manual string-generated config, and weak exit-code handling.Recommendation
Do not continue this as a broad "server management" product.
Recommended direction:
Script-by-script assessment
/etc/update-motd.d.nginx -thandler.nginx -tbefore reload.openssl randdocumented directly.sshd -T.sshd -tvalidation followed by reload/restart handler.authorized_keyand external key management.userandauthorized_keymodules.getentdirectly or Ansible facts.id -uor Ansible facts.loginctl terminate-user.Acceptance criteria for a future v2