Installation

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 — true on 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 to false before 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 / toolInstall it...
Musicif 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, Beatone per content type you're actually launching with. Each is independent — don't install a vertical you're not using
Bulk Importer, Lorem AIalmost always — both exist specifically to fill an empty catalogue fast while you're still setting up
Sitemap Generatoralways — free SEO baseline, no downside
Extra Gateways / crypto gatewaysonce you know which payment methods your audience actually needs beyond PayPal/Stripe
User Points, Messenger, Affiliateonce your core content is live — community/growth features, not launch blockers
AI Translatoronce you're actually adding a second language, not before
Spotify/YouTube/SoundCloud/Wikimedia scrapersonly 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:

  1. 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
  2. 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)
  3. 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
  4. Install the Demo Importer tool itself via Modules → Tools → Tool Manager, then open the new Modules → Demo Importer page it adds
  5. Pick your matching demo from the dropdown and click Import
Read this before you click Import
The importer replaces most of your database content and deletes everything in your files folder, then loads the demo's own data in its place. It cannot be undone. Only ever run it on a freshly installed site with nothing real on it yet — never on a site you've already started adding content to.

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=yes on 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

SettingWhen
Brand, Placeholders, Theme colorNow — before any content
Currency, LanguageNow, if not USD/English — can't be safely changed after you've started pricing/writing
Plugins for your verticalsNow — content and pages both depend on this
production / session_livefalse / 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
FFmpegBefore 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 pricingBefore you expect to get paid
Captcha, SEO Titles, Search settingBefore launch, not before setup — low risk to leave until you're polishing
Social Login, VAPID/FCM/APN push, Ads, extra gateways, IP GeolocationLater, only if you actually need that specific feature