Setup your app
Remove the installer, then configure the app
Remove the installer folder before doing anything else — it should already refuse to run after installation, but don't leave it sitting on a public server. Delete the uploaded .zip of the script too; there's no reason to leave a copy of your purchase downloadable.
A fresh install comes with the Music plugin enabled and a small demo catalogue (7 tracks, 6 artists, 7 albums) on a ready-made Big Slider homepage, so you can see the platform working straight away. Replace or delete that demo content as you add your own. This article is the whole path from that first install to a real, running, monetized platform — what to do first, what can wait, and where the deeper guide for each step lives.
1. Log in and get oriented
Visit https://yourwebsite.com/admin/ and sign in with the email and password you set during installation. The left sidebar is organized into six families: Stats (dashboards), Content (Blog and Music by default, plus whatever vertical plugins you install), Users, Business (payments, subscriptions, ads), Modules (plugins, themes, tools) and Setting (everything about how the app behaves).
2. Brand and core settings
These are worth doing before you add any content, because changing them later means redoing work:
- Settings → Interface → Brand — name, short name, icon and logo. Saving regenerates manifest.json, which is what lets browsers offer your site as an installable app
- Settings → Interface → Placeholders — a user-avatar and a cover placeholder. Content without its own cover art falls back to these, so skipping this means broken-looking cards everywhere
- Settings → Interface → Theme Setting — your brand color
- Settings → General → Currencies — if you're not pricing in USD, set this before you price anything. Changing it later doesn't convert prices you've already set
- Settings → Languages — if your primary language isn't English, add and set it before you start writing content. See Language
Two switches in api/app/config_user.php matter specifically while you're still building, not once you're live:
- production — leave it false during setup (lighter caching, more logs and errors surfaced); set it to true before you launch
- session_live —
trueon a fresh install: a signed-in user's roles and account data are re-read on every request, so role changes apply instantly while you test. Set it tofalsebefore launch to save database work; role changes then reach open sessions within a few requests instead of immediately
RKHM caches aggressively on both server and client once production is true — good for visitors, a nuisance while customizing. See Caching for exactly what's cached and for how long. Test in an incognito window or with your browser's cache disabled so you're not fighting your own browser's cache on top of RKHM's.
3. Choose your plugins
Blog and Music are enabled on a fresh install. Everything else — what your platform is actually about — is a plugin you turn on in Setting → Plugins. Installing or uninstalling upgrades the admin panel and client app automatically; just refresh both. See Managing plugins and Purchasing add-ons.
A rough guide to what's worth installing, and when:
| Plugin / tool | Install it... |
| Music | if music is any part of your platform — it's the most complete vertical and the one every other vertical follows the shape of |
| Podcast, Radio, Audiobook, Beat | one per content type you're actually launching with. Each is independent — don't install a vertical you're not using |
| Bulk Importer, Lorem AI | almost always — both exist specifically to fill an empty catalogue fast while you're still setting up |
| Sitemap Generator | always — free SEO baseline, no downside |
| Extra Gateways / crypto gateways | once you know which payment methods your audience actually needs beyond PayPal/Stripe |
| User Points, Messenger, Affiliate | once your core content is live — community/growth features, not launch blockers |
| AI Translator | once you're actually adding a second language, not before |
| Spotify/YouTube/SoundCloud/Wikimedia scrapers | only if you need data the official APIs don't provide. Scrapers don't need API credentials, but using them is only legal for research purposes and personal use — see Automation |
| NFT, Hybrid Mobile App (native Android/iOS apps) | only if that's a deliberate part of your business model — both are niche, not day-one material |
4. Build your taxonomy, then add content
Every content vertical follows the same shape: Creator → Group → Single → Source (for example Artist → Album → Track → Track Source; Radio is the one exception with no creator or group). Nothing plays without at least one Source attached to it, so that's the one step people most often forget.
There's more than one way to fill your catalogue, and you'll likely use several:
- Admin CRUD — create each Creator, Group and Single by hand in the admin panel. Most control, most manual effort
- The uploader — a self-service, client-side upload path for you or your users, no admin panel needed
- Automation — schedule Spotify, YouTube, or Busyowl's own hosted catalogues of radio stations, audiobooks and podcasts to populate content on autopilot. See Automation
- Bulk Import — bring in thousands of existing tracks/albums in one pass with Bulk Importer
- AI generation — generate art, copy and metadata with Lorem AI
See Add content for the admin workflow, a video example, and the self-service uploader requirements.
For music automation, check Music automation and Spotify changes before configuring Spotify credentials or scheduling imports.
5. Design your pages
Nothing is indexed automatically. Settings → Page Builder is how every page — home, browse, landing, everything — actually gets built: create a page, then fill it with widgets. Content widgets list and link your catalogue (5 exist by default; installing a plugin adds its own — Music alone adds 6: album, artist, track, genre, tag, language). Design widgets (Call-to-action, Step List, Feature List) are what you use for hero sections, landing copy and layout — the same building blocks RKHM's own demo sites are made from. Uninstalling a plugin removes its widgets, so don't build a page around a plugin you're not committed to. Use Settings → Menu Builder for header/footer navigation. See Page Builder.
Making it look like one of our demos
This is a real, self-serve feature, not just marketing copy — but it has real preconditions and it is destructive, so follow the order below exactly:
- Decide which ready-made demo matches what you're building. The flagship, most complete demo runs the boxi theme with almost every vertical installed together; several smaller, single-vertical demos (music-only, podcast-only, radio-only, audiobook-only) and a couple of niche combos run the shady theme instead
- Set theme in config_user.php to match that demo's theme (the importer checks this value), and activate the same theme as the Desktop Theme under Setting → Themes. Phones use the Shadyf0n mobile theme automatically (separate desktop and mobile theme slots were added in v2.1.04)
- Install every plugin that demo uses, via Setting → Plugins — the importer checks this and refuses with the list of plugins that demo requires if one is missing
- Install the Demo Importer tool itself via Modules → Tools → Tool Manager, then open the new Modules → Demo Importer page it adds
- Pick your matching demo from the dropdown and click Import
6. Users and roles
A role is what actually controls who can do what, in both the admin panel and the client app. There are two families: client-end roles (Guests, Users, and any premium tiers you create) and admin-area roles (Moderators, Admins). By default there are 4: Guests (not logged in), Users (logged in, default access), Moderators (limited admin access, can't use the client app unless also a User), and Admins (full access, can't be edited). Installing plugins can add more — Music adds Artist Manager, Podcast adds Podcast Manager, Beat adds Producer Manager, Affiliate adds Affiliates, all semi-admin, all client-facing users who requested and were approved for that status.
Roles are assigned manually (Users → User List → edit a user) or automatically — for example, approving someone as an artist manager applies that role by itself. This is also the mechanism subscription plans use: see the next section. Full detail in Roles and, for creator payouts specifically, Manager system.
7. Get paid
Enable at least one payment method under Business → Payment Gateways (Offline, PayPal, Stripe are built in; install Extra Gateways or a crypto gateway plugin for more).
To sell subscriptions: go to Business → Subscription → Plan list, name the plan, set its price, write its perks as a checklist in the description, and set a designated user-role. That role is granted automatically the moment someone buys the plan and removed automatically when it expires — so the actual access rules live on the role (previous section), not on the plan itself. You can sell no plans and price items individually instead, or run both side by side. Recurring billing (monthly/yearly/weekly, charged automatically) is supported only through Stripe today — turn on "Recurring Fee Strategy for Subscription Plans" under its gateway settings. Manage active subscribers under Business → Subscription → Subscription list. See Subscription system.
8. Monitor and maintain
A few things are worth checking regularly once you're live:
- Setting → Cronjob → Run logs — RKHM's automation (Spotify sync, scheduled imports, etc.) needs a real OS-level cron running
php -f /path_to_rkhm/api/admin.php bof_cronjobs=yeson an interval, commonly once a minute. Nothing you scheduled runs until that's wired up server-side, and this page is how you confirm it's actually firing - Setting → Firewall — the built-in firewall (added in v2.1.00) watches your request logs, blocks abusive addresses and shows hits and blocks. It's free and built in; turn it on in monitoring mode first. See Firewall
- Business → Transactions and Users → User Requests → Withdrawal — financial activity and pending creator payouts
- Setting → Files → File List — keep an eye on storage usage, especially before it becomes a hosting-bill surprise
The admin dashboard's Statistics panel is a real, working analytics engine — see Statistics for exactly what each tab measures, how it collects and updates data, and its limitations. It complements rather than replaces your host's own uptime monitoring, and Google Analytics remains worth running alongside it for what it does not cover — see that article's own comparison. When you're ready to update to a new release, see Updating so you don't lose your own changes.
Quick reference: necessary now vs. safe to defer
| Setting | When |
| Brand, Placeholders, Theme color | Now — before any content |
| Currency, Language | Now, if not USD/English — can't be safely changed after you've started pricing/writing |
| Plugins for your verticals | Now — content and pages both depend on this |
| production / session_live | false / true while building, flip to true / false right before launch |
| Storage (S3/FTP/etc.) | Before you upload much — RKHM doesn't currently migrate files between storages |
| FFmpeg | Before heavy uploading if you want HLS encryption, format conversion or lower-quality copies — optional otherwise. Waveforms use the separate audiowaveform tool |
| Session settings, Email (SMTP) | Before real users arrive — session changes don't apply retroactively, and broken email can hang signup/password-reset requests |
| Payment gateway + at least one Subscription plan or per-item pricing | Before you expect to get paid |
| Captcha, SEO Titles, Search setting | Before launch, not before setup — low risk to leave until you're polishing |
| Social Login, VAPID/FCM/APN push, Ads, extra gateways, IP Geolocation | Later, only if you actually need that specific feature |