English | Русский
- PHP 7.3+ (tested on 8.3/8.4) with the
mysqliandgmp/bcmathextensions (used byclass/viz_keys.php); - MySQL / MariaDB;
- nginx (or another web server) proxying all requests to
index.php; - access to a public VIZ JSON-RPC node.
Minimal option: if the server-side marketplaces (accounts for sale, paid subscriptions) are not needed, the DB and cron can be skipped — the wallet works without them.
-
Copy the code into the site root (the live example is served from the domain root
https://wallet.viz.world/). -
Create the configuration. Copy the example and fill in the values:
cp config.example.php config.php
config.phpis git-ignored (see .gitignore) and must not end up in the repository — it holds the admin password and DB access. Keys:Key Description $users_arrLogins/passwords for admin.php.server_timezoneServer time zone. db_host/db_login/db_password/db_baseMySQL access. jsonrpc_nodeVIZ JSON-RPC node URL. -
Create the DB tables (only if the marketplaces are needed):
mysql -u <login> -p <database> < tables.sql
-
Configure nginx. Use nginx.example.conf as a base: any request that does not match a file/directory is rewritten to
index.php, and*.phpis handled via php-fpm. -
Set up cron to refresh the marketplaces (only if needed):
*/10 * * * * php /var/www/wallet.viz.world/updater.php > /dev/null 2>&1
The interval is up to you (e.g. every 10 minutes).
-
Check the admin panel. Open
/admin.php, log in with a login/password from$users_arr, and make sure the marketplace sections are visible.
- Never commit
config.phpor private keys..gitignorealready protectsconfig.php,*.wif,*.key,*.pem. - The admin password in
config.phpis stored in plain text — use a separate strong password and restrict access toadmin.phpat the server level if needed. - The repository must not contain tools like Adminer and the like: they give direct access to the DB.