Requirements
- PHP 8.2 or newer
- MySQL 5.7+ / MariaDB 10.3+ or SQLite 3
- Apache with mod_rewrite (cPanel, XAMPP) or Nginx
- PHP extensions: pdo, curl, openssl, mbstring, fileinfo, xml, gd, zip
- Outgoing HTTPS (license check and reading link details)
Composer and SSH are not needed — the zip includes every library.
Install on cPanel / shared hosting
- In cPanel › MySQL Databases, create a database and a user, then add the user to the database with All privileges.
- Download the latest zip from your client area.
- In File Manager, upload the zip to
public_html(or a sub-folder such aspublic_html/telegram) and extract it. You do not need to change the document root. - Open the address in your browser. The installer checks the requirements, asks for the database, your site name, admin account, the extensions you want and whether to add sample links, and installs everything.
Install on XAMPP / WAMP / Laragon
Copy the extracted folder into htdocs, start Apache and MySQL and open http://localhost/tggroups/. XAMPP's database defaults are host 127.0.0.1, user root and an empty password. The license works on localhost for testing.
Activate the license
The installer's last step asks for your license code and your name. Find the code under My licenses or in the email sent after payment. The license is checked online once and re-checked every 7 days; if the license server cannot be reached, TGGroups keeps working and tries again the next day. Admin › License shows the status at any time.
Cron job (optional)
TGGroups works without cron. To keep link health up to date (dead usernames and revoked invites hidden, member counts refreshed), add one hourly cron job (cPanel › Cron Jobs):
0 * * * * php /home/USER/public_html/artisan links:check --limit=50 >> /dev/null 2>&1
Without cron, press Check next batch under Admin › Link health from time to time.
First steps after installing
- Notification settings › Email setup — enter SMTP details and send a test email (email goes to the log file until you do).
- Directory settings › Submissions — accepted link types, guests or members only, auto-approve, daily limits and blocked words.
- Categories — edit the starter categories or add your own, with icons, page text and SEO titles.
- Homepage sections — reorder the search banner, link types, featured, categories and trending sections.
- Extension manager — switch on reviews, featured listings, ads, the public API and the rest.
- Telegram Bot Tools — paste the token of a bot you created with @BotFather and your channel's @username, so every approved link is posted to your channel.
- Links — remove the sample links with one click and approve your first real submissions.
Updating to a new version
- Back up your files and database.
- Download the new zip and upload every file over the old ones, except
.envand thestorageandpublic/uploadsfolders. - If the changelog mentions database changes, run
php artisan migrate --force(cPanel › Terminal), thenphp artisan license:reseal. - Open the admin panel and check Admin › License — press Verify now if it asks.
See the changelog for what changed in each version.
Moving to another domain
Open the license under My licenses and use Move to another domain, or reset the old installation. Then install on the new domain with the same code.
Troubleshooting
- Blank page or error 500
- Select PHP 8.2+ for the domain and make
storageandbootstrap/cachewritable. Details are instorage/logs/laravel.log. - Pages other than the home page show 404
- Turn on mod_rewrite and make sure the hidden
.htaccessfiles were uploaded. - "License cannot be verified"
- Allow outgoing HTTPS and enable curl. Check that you entered the code exactly, and reset the old installation if you moved domains.
- Names, pictures and types are not fetched
- Allow outgoing HTTPS to
t.meand enable curl. Some hosts block Telegram; submitters can then type the name and choose the type themselves. Sticker packs, folders, themes and mini apps never have a readable name. - The bot does not post to my channel
- Open Directory › Telegram bot: the last error from Telegram is shown there. "chat not found" means the channel name is wrong or the bot is not an administrator of the channel.
Still stuck? Open a support ticket — Monday to Saturday, 10:00 – 19:00 IST.