This guide describes how to install IntroVox on a Nextcloud instance.
- Nextcloud 32 or later (32–34 explicitly supported as of v1.5.0)
- PHP 8.1 or later
Verify the authoritative requirements in appinfo/info.xml.
- Log in to your Nextcloud instance as an administrator
- Open Apps from the top-right menu
- Search for IntroVox
- Click Download and enable
Or go directly to apps.nextcloud.com/apps/introvox.
- Download the latest release tarball from GitHub Releases
- Extract to your Nextcloud
apps/directory:tar -xzf introvox-X.Y.Z.tar.gz -C /var/www/nextcloud/apps/
- Set correct ownership:
sudo chown -R www-data:www-data /var/www/nextcloud/apps/introvox
- Enable the app:
sudo -u www-data php occ app:enable introvox
For development or testing the latest unreleased changes:
git clone https://github.com/nextcloud/IntroVox.git /var/www/nextcloud/apps/introvox
cd /var/www/nextcloud/apps/introvox
npm install
npm run build
sudo -u www-data php occ app:enable introvoxSource-based installs require a
nodeandnpmtoolchain on the server. For production, prefer the App Store or pre-built tarball.
After enabling the app:
- Go to Settings → Administration → IntroVox
- Toggle Enable wizard for all users — the tour is now live in every Nextcloud-supported language automatically (auto-translated via Transifex; English fallback for languages without a translation)
- Optionally open the Steps tab and click + Add language override to author custom copy for a specific language
- Optionally restrict steps to specific user groups for role-based onboarding
See Admin Guide for the full configuration walkthrough.
If you only want certain Nextcloud groups to see the wizard at all (and not just specific steps):
- Go to Settings → Apps → IntroVox
- Click "Limit to groups"
- Select the allowed groups
Users outside those groups won't have IntroVox's JavaScript loaded — the cleanest way to scope the app.
For finer control (different steps per group), see Group-Based Visibility.
Upgrades appear in Settings → Apps → Updates when a new version is published. Click Update and Nextcloud handles the rest.
- Download the new release tarball
- Disable the old version:
sudo -u www-data php occ app:disable introvox
- Replace the
apps/introvoxdirectory with the new tarball contents - Re-enable:
sudo -u www-data php occ app:enable introvox
IntroVox does not create or migrate custom database tables — all state lives in oc_appconfig and oc_preferences. Upgrades are non-destructive: custom step configurations, enabled languages, and user preferences are preserved.
The defensive is_array() guard in ApiController::getWizardSteps() (v1.4.3+) means that even if an older corrupt step blob exists, the wizard falls back to defaults rather than crashing.
sudo -u www-data php occ app:disable introvox
sudo rm -rf /var/www/nextcloud/apps/introvoxThe app-config and preferences rows can be left in place (harmless) or cleaned up:
DELETE FROM oc_appconfig WHERE appid = 'introvox';
DELETE FROM oc_preferences WHERE appid = 'introvox';After installation:
- Log in as a regular user with an enabled language
- The wizard should auto-start on the dashboard after a few seconds
- Check Settings → Personal → IntroVox — the Restart tour now button should be visible
If the wizard doesn't appear, see Admin Troubleshooting.
- Admin Guide — Day-to-day administration
- Admin Troubleshooting — When something goes wrong
- App Store Submission — For developers releasing IntroVox itself
- Release Process — Version sync, build, GitHub releases