Quick Setup Tutorial for zCI Computer Inventory SystemzCI is a lightweight, web-based computer inventory system designed to help IT teams track hardware, software, and network assets with minimal setup and maintenance. This tutorial walks you through installation, initial configuration, adding devices, and basic workflows to get zCI working for a small to medium environment quickly.
Prerequisites
Before starting, ensure you have:
- A server or VM running a recent Linux distribution (Ubuntu 20.04/22.04 or CentOS 8/Stream recommended).
- Root or sudo access to install packages and edit configuration files.
- A web server and database: zCI typically supports Apache or Nginx with PHP and a MySQL/MariaDB or PostgreSQL database.
- PHP 7.4+ (or a supported PHP version) with common extensions (PDO, mbstring, curl, json, xml).
- Composer for PHP dependency management (if zCI uses Composer).
- Optional: HTTPS (TLS) certificate for secure access.
If you don’t have a server: you can use a small cloud VM (1–2 vCPU, 1–2 GB RAM) from providers like DigitalOcean, Linode, or AWS Lightsail for testing.
1. Download and unpack zCI
-
Obtain the zCI package:
- If distributed as a ZIP/tarball, upload it to your server (scp or wget).
- If hosted on Git, clone the repository:
git clone https://example.com/zci.git /var/www/zci
-
Set permissions for the web directory:
sudo chown -R www-data:www-data /var/www/zci sudo find /var/www/zci -type d -exec chmod 755 {} ; sudo find /var/www/zci -type f -exec chmod 644 {} ;
-
If the project uses Composer:
cd /var/www/zci composer install --no-dev --optimize-autoloader
2. Create and configure the database
-
Install a database server (example for MariaDB on Ubuntu):
sudo apt update sudo apt install mariadb-server sudo mysql_secure_installation
-
Create database and user:
sudo mysql -u root -p CREATE DATABASE zci_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'zci_user'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON zci_db.* TO 'zci_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
-
Update zCI configuration file (commonly config.php or .env) with DB credentials:
DB_HOST=127.0.0.1 DB_NAME=zci_db DB_USER=zci_user DB_PASS=strong_password
3. Configure the web server
Example Nginx configuration for zCI at /etc/nginx/sites-available/zci:
server { listen 80; server_name zci.example.com; root /var/www/zci/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; } location ~ /.ht { deny all; } }
Enable and reload:
sudo ln -s /etc/nginx/sites-available/zci /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx
If using Apache, enable PHP and set a VirtualHost pointing to the zCI public directory.
4. Run initial setup and migrations
Many PHP web apps include a web-based installer or CLI migrations:
- Web installer: browse to http://zci.example.com and follow the setup wizard, entering DB and admin account details.
- CLI migrations (example):
cd /var/www/zci php artisan migrate --seed
After this step you should have an admin account and the database schema populated.
5. Configure authentication and users
- Log in as the initial admin.
- Create additional user accounts and assign roles (admin, technician, viewer).
- If available, enable LDAP/AD integration:
- Enter your LDAP server URL, base DN, bind DN, and password.
- Map LDAP groups to zCI roles for centralized access control.
6. Add inventory sources
zCI usually supports multiple methods to add assets:
- Manual entry — use the “Add Device” form to input hostname, serial, model, OS, owner, location, and notes.
- CSV import — format example:
hostname,serial,model,os,ip,owner,location pc-01,SN12345,Dell OptiPlex 7080,Windows 10,192.0.2.10,John Doe,HQ-3rd
Use the import tool in the UI to map columns.
- Network discovery — configure IP ranges and enable SNMP/WMI polling (enter SNMP community strings or WMI credentials).
- Agent-based discovery — install the zCI agent on endpoints to report hardware/software automatically. Typical agent install example for Linux:
curl -sSL https://zci.example.com/agent/install.sh | sudo bash
For Windows, run the MSI or PowerShell installer provided.
7. Set up automated inventory tasks
- Schedule scans/discovery to run daily or weekly depending on environment size.
- Enable software inventory to collect installed packages, versions, and license keys.
- Configure alerts for new devices, missing agents, or high-risk software.
8. Configure locations, departments, and models
- Create a location hierarchy (e.g., HQ > Floor 3 > Room 301).
- Add departments and assign owners to devices for accountability.
- Import common hardware models and associate warranty/contract info for warranty tracking.
9. Reporting and dashboards
- Customize the dashboard widgets to show device count, OS distribution, and warranty expirations.
- Create scheduled reports (CSV or PDF) for IT managers: inventory summary, software usage, upcoming warranties, and out-of-date OSes.
10. Backups, updates, and security
- Back up the database daily and rotate backups off-site. Example cron for mysqldump:
0 2 * * * /usr/bin/mysqldump -u zci_user -p'strong_password' zci_db | gzip > /var/backups/zci-$(date +%F).sql.gz
- Apply security updates for OS, PHP, web server, and database regularly.
- Use HTTPS (Let’s Encrypt) and enable HTTP->HTTPS redirect.
- Limit access to the administration interface by IP or VPN when possible.
Troubleshooting tips
- Error 500: Check web server and PHP-FPM logs (/var/log/nginx/error.log, /var/log/php7.4-fpm.log).
- Database connection issues: verify credentials and that DB accepts connections from the web server host.
- Agent not reporting: confirm firewall rules allow outbound reporting and correct agent configuration.
Quick checklist (first 24 hours)
- [ ] Install zCI on a supported server.
- [ ] Configure database and run migrations.
- [ ] Create admin account and configure users/roles.
- [ ] Import initial devices via CSV or discovery.
- [ ] Install agents on critical systems.
- [ ] Configure backups and HTTPS.
- [ ] Schedule regular discovery and reporting.
This guide covers a rapid setup path to get zCI up and running. For advanced customization, refer to the project’s official documentation for API usage, integrations (ticketing, SCCM, Intune), and plugin modules.
Leave a Reply