🌐 Language: English | Русский
Orbitra is a modern traffic management and conversion tracking system. A simpler and faster alternative to Keitaro Tracker, while keeping full API and feature compatibility.
Namecheap Buy & Park works again — registration contacts and real prices are fixed (PR #10, thanks @lucasvaz013).
- 🏠 Namecheap Buy & Park works again — Address Book contacts with ID
0(the primary address on many accounts) are no longer dropped, anddomains.createreceives the full four-role contact set resolved viausers.address.getInfoinstead of the unsupported*AddressIdshortcut that answered "Parameter RegistrantFirstName is Missing"; contact requests go as form POST, keeping the API key out of the URL - 💰 Real registration prices — regular domains are quoted a one-year
REGISTERrate fromusers.getPricing(+ ICANN fee) instead of a misleading$0read off the premium-price field; premium domains keep their own price and fees; the currency shows in the dialog and the confirmation, and a missing quote disables the purchase button with a "price unavailable" notice - 🧪 Three new regression suites — pricing (compound TLDs, multi-year rates, malformed quotes), contact resolution and the zero address ID; canned XML only, no purchases
- 🤝 Partners block on Feedback & Support — a themed full-width card under the contact grid listing partner services as linked logo tiles: Pay2.House (virtual cards for Facebook, Google and TikTok Ads spend) and GroupBuySEO (group-buy access to Ahrefs, Semrush, ChatGPT Plus and more); extending the list is deliberately cheap — one SVG, one array entry, four locale strings
- 🌍 All seven locales — the partners copy ships in en / ru / de / uk / es / fr / zh out of the box
Older releases (v1.5.4 and earlier): see the full changelog.
Try the full panel — no install required:
- URL: https://demo.orbitra.link/admin.php
- Login:
admin - Password:
password
Shared demo instance — please don't store anything sensitive; data may be reset at any time.
To install automatically on a clean Linux server, run:
wget -O orbitra-install.sh https://raw.githubusercontent.com/fenjo26/Orbitra.link/main/install.sh && bash orbitra-install.shThe download is a separate step on purpose: wget -qO- … | bash fails
silently when the download fails (a fresh server's DNS is sometimes not ready
in its first minute), and bash runs whatever arrived — in the worst case,
nothing at all. This way a failed download stops before bash starts, and
wget says why.
The installer automatically:
- Downloads the source code from GitHub
- Installs Nginx, PHP 8.0+ (FPM), SQLite3 and Node.js 20
- Builds and deploys the React/Vite frontend
- Configures a Let's Encrypt SSL certificate for your domain
Orbitra is deliberately lightweight — it runs on plain PHP + SQLite behind Nginx, with no heavy frameworks and no separate database server (no ClickHouse, Redis or MySQL). Because of that it needs far less RAM than ClickHouse-based trackers and comfortably fits on the smallest VPS plans.
- CPU: 1 vCPU (x86_64)
- RAM: 1 GB (2 GB recommended)
- Disk: 20 GB SSD
- OS: Ubuntu 22.04 through 26.04, or Debian 12 / 13
- Clean server, no control panel; root/sudo access
| Clicks per day | RAM | CPU | Disk |
|---|---|---|---|
| up to ~100,000 | 1–2 GB | 1–2 vCPU | 20 GB SSD |
| ~100,000 – 500,000 | 2–4 GB | 2 vCPU | 40 GB SSD |
| ~500,000 – 1,000,000 | 4–8 GB | 4 vCPU | 80 GB SSD |
✅ Field-tested: Orbitra runs well on a 2 vCPU / 2 GB RAM / 20 GB SSD VPS (Ubuntu 24.04) for low traffic — a comfortable, inexpensive starting point. The higher rows above are headroom for heavier traffic, not a hard requirement.
Software (installed automatically by install.sh): Nginx, PHP 8.0+ with FPM (php-sqlite3, php-curl, php-mbstring, php-xml, php-zip), SQLite 3, Node.js 20 (build only), Certbot for SSL.
💡 Why lower than Keitaro? Keitaro stores clicks in ClickHouse + Redis + MySQL, so its RAM requirements scale steeply (up to 64 GB for millions of clicks/day). Orbitra keeps everything in a single SQLite file, so RAM is not the bottleneck — disk I/O and SQLite's single-writer model are. SQLite (in WAL mode) handles low-to-mid volume comfortably; for sustained millions of clicks per day with heavy analytics, a columnar-DB tracker like Keitaro is architecturally a better fit.
💡 Note on the 1 GB plan: running the tracker needs very little memory, but the installer builds the frontend on the server with Vite, which is the most memory-hungry step. On a 1 GB box add ~1–2 GB of swap before installing (or build the frontend elsewhere) so the build doesn't run out of memory. Disk usage stays small — it grows mainly with the SQLite click/conversion logs over time.
- Click API with tokens — full compatibility with existing integration scripts
- Import from Keitaro — migrate campaigns, offers, domains and streams while preserving tokens
- API compatibility — works with existing postbacks and webhooks
- Backend: PHP 8.3+ without heavy frameworks (clean code)
- Database: SQLite 3 (single file, automatic schema creation)
- Frontend: React 19 + Vite 7 + Tailwind CSS 4
- UI/UX: Modern design with multiple built-in themes (Light, Dark, Green, Neon) and a custom palette
- 6 payout models: CPC, CPuC, CPM, CPA, CPS, RevShare
- 30+ parameters: keyword, sub_id_1...30, cost, creative_id and more
- Advanced stream logic: Intercept → Regular → Fallback with weights and positions
- Advanced filtering: GEO, Device (Desktop / Mobile / Tablet taxonomy shared by the tracker, Click API and reports), OS, Browser, ISP, IP, Language, Referer
- A/B testing: built-in split-test support with weighted rotation
- Play/Pause from the panel — one click pauses an internal campaign (a disabled campaign stops serving immediately) or an actual Facebook ad / ad set / campaign right from the table or a report row, via the Meta Marketing API
- Per-stream "Collect clicks" — fallback and white-page streams can serve their destination without writing a click row, so unwanted traffic stops polluting CR and CPA
- S2S Postbacks — Server-to-Server postbacks from affiliate networks
- Affiliate network templates: platform-level (Everflow, CAKE, HitPath, Affise, TUNE/HasOffers) plus networks Leadbit, M4Leads, Dr.Cash, AdCombo and others
- Source templates: Facebook, Google, TikTok, Yandex, Taboola, Outbrain, Email and others
- Click API — tokens for working with integration scripts
- Facebook cost import — daily ad spend pulled from the Meta Marketing API and attributed to clicks by ad / adset / campaign ID, converted into the tracker's currency (docs)
- TikTok Ads & Google Ads cost import — the same attributed-spend pipeline for the other major networks
- External cost API — Dolphin and Fbtool push spend straight into Orbitra through a Keitaro-compatible Admin API route (docs)
- Facebook Conversions API — conversions sent to Meta server-side, deduplicated against the browser pixel, so the events ad blockers and iOS strip out still reach the optimiser
- Ads Manager extension — a browser overlay that injects real profit / ROI / CPA pills into Facebook Ads Manager rows, with a per-entity drill-down: daily history, landings and offers breakdown, and Pixel/CAPI delivery accuracy (auto-provisioned read key, no page permissions on other sites)
- Cloudflare & Namecheap — DNS parking and SSL through the Cloudflare API; buy, park and import domains through Namecheap without leaving the panel
- Revenue aggregators — Affilka, ReferOn and generic S2S APIs feed real player revenue back into reports
- Telegram Bot — real-time monitoring and notifications
- Dashboard — aggregated statistics for clicks, conversions and revenue
- Trends — detailed analytics with charts across 8 metrics
- Campaign Reports — campaign reports grouped by any parameter, with saveable column templates and a Keitaro-parity column set (visits, LP CTR, leads/sales/rejected/trash, Approve %, EPC/EPV, ROI/ROI(conf), CPV)
- Cohort analysis — how campaigns launched on different dates hold up over time
- High-density tables — compact sticky-header tables for Campaigns / Landers / Offers with zebra striping, pagination and a TOTAL row that always stays visible
- Conversion Log — detailed conversion log with filters
- Traffic Simulation — click simulation for testing streams
- 7 languages: 🇬🇧 English, 🇷🇺 Russian, 🇺🇦 Ukrainian, 🇪🇸 Spanish, 🇨🇳 Chinese (Simplified), 🇫🇷 French, 🇩🇪 German
- Full i18n coverage — every UI element is localized, with 100% key parity across all locales
- Language switching — in profile settings, without a page reload
- 10+ commands:
/stats,/campaigns,/top,/conversionsand others - Notifications: instant conversion notifications
- Daily summary: automatic campaign report
- Multilingual: the bot speaks all 7 interface languages (EN, RU, UK, ES, ZH, FR, DE) via
/lang
- Domain groups — organise parked domains ("FB Nutra", "TikTok Landers", …) with inline group creation from the domain modal
- Per-domain controls — admin panel access (deny = panel and API answer 404 on that host while tracking keeps working), HTTPS-only redirect, Cloudflare proxy (SSL from the CF edge, Let's Encrypt issuance skipped), crawler indexing
- Index page routing & Catch 404 — serve a campaign on the domain root or catch unknown paths
- Registrar / DNS metadata — registrar, DNS provider and manual status (Disabled serves 404 on the whole host)
- Bulk add with URL cleanup — paste
https://track.example.com/or a comma-separated list; HTTP(S), slashes and spaces are cleaned automatically - DNS check — automatic A-record verification with caching
- Automatic SSL — Let's Encrypt via Certbot with retry backoff and chain-completeness checks; zero-config parking writes the A record when the Cloudflare or Namecheap integration is connected
- Full data migration: campaigns, offers, domains, streams, affiliate networks, sources, landings
- Token preservation — Click API tokens are carried over for compatibility
- In-UI guide — step-by-step instructions for creating a Keitaro backup
- Preview mode — preview before the real import
- Per-campaign human verification — stop corporate email security crawlers and clickbots from polluting your statistics
- reCAPTCHA v2 — classic "I'm not a robot" checkbox
- reCAPTCHA v3 — invisible, score-based with a configurable threshold
- Custom code — paste any HTML/JS verification widget
- Clean stats — clicks are logged only after a successful challenge, so bots never appear in reports; challenge state is signed (HMAC-SHA256) and expires in 15 minutes to prevent replay
- RBAC roles — one-click role templates (Admin / Media Buyer / Video Editor / Developer / Custom) fill the whole per-resource permission matrix
- Server-side financial masking — users without
show_costs/show_revenue/show_payoutsee money fields nulled across metrics, charts, campaigns and offers, with save-guards so a masked editor load can never wipe stored amounts - Personal API keys — per-user keys with
read/writescopes for MCP, the Admin API and the Ads Manager extension - Bot & cloak protection — datacenter/VPN ASN detection, UA heuristics, bot-ISP blocklists, safe-page serving for suspicious visitors with per-stream control over what lands in the stats
Since v0.9.5.0 Orbitra ships an MCP server (mcp/) — connect Claude Desktop or any other MCP client and drive the tracker in plain language:
"How did my campaigns do over the last 7 days?" "Create 10 campaigns for offer #4 — one per GEO: US, CA, GB, DE, FR." "Add track.example.com and point its root at campaign 12."
- 31 tools — reads (metrics, campaigns, conversions, reports) and management (create / bulk-create / edit / delete campaigns, offers, domains, sources, landings)
- Scoped API keys —
read(analytics only) andwrite(management), generated under Users → API keys - Safe by design — the key only ever goes to your own tracker address; read keys physically cannot change data
Details: docs/mcp.md and mcp/README.md.
Orbitra/
├── api.php # REST API (60+ endpoints)
├── index.php # Main tracker (click handling)
├── admin.php # Admin panel entry point
├── postback.php # Postback handler
├── click.php # Click API
├── telegram_bot.php # Telegram bot webhook handler
├── config.php # DB configuration and migrations
├── database.sql # DB schema documentation
├── version.php # System version
├── router.php # PHP built-in server router
├── install.sh # Auto-installer
├── *_cron.php # Cron jobs (aggregator, backorder, source checks)
├── .htaccess # Apache rewrite rules
│
├── core/ # System modules
│ ├── keitaro_import.php # Import from Keitaro
│ ├── click_api.php # Click API implementation
│ ├── backorder.php # Domain monitoring
│ └── SxGeo.php # Geo IP database
│
├── frontend/ # React + Vite frontend
│ ├── src/
│ │ ├── App.jsx # Main component with routing
│ │ ├── main.jsx # Entry point
│ │ ├── components/ # 53 React components
│ │ │ ├── CampaignEditor.jsx # Campaign editor (~130KB)
│ │ │ ├── IntegrationsPage.jsx # Integrations
│ │ │ ├── MigrationsPage.jsx # Migrations and import
│ │ │ ├── ConversionsLog.jsx # Conversion log
│ │ │ ├── CampaignReports.jsx # Campaign reports
│ │ │ └── ... # Other components
│ │ ├── contexts/
│ │ │ └── LanguageContext.jsx # i18n context
│ │ └── locales/ # 7 languages, 100% key parity
│ │ ├── en.js # English
│ │ ├── ru.js # Russian
│ │ ├── uk.js # Ukrainian
│ │ ├── es.js # Spanish
│ │ ├── zh.js # Chinese
│ │ ├── fr.js # French
│ │ └── de.js # German
│ ├── package.json
│ ├── vite.config.js
│ └── index.html
│
├── docs/ # Documentation
│ ├── index.md # Documentation overview
│ ├── architecture.md # Architecture and technologies
│ ├── features.md # Feature descriptions
│ ├── api.md # REST API documentation
│ ├── deployment.md # Deployment instructions
│ └── keitaro-migration.md # Keitaro migration guide
│
├── aggregator_engines/ # Stats aggregation engines
├── cli/ # CLI utilities
├── landings/ # Uploaded landings
└── vendor/ # Composer dependencies
# Clone the repository
git clone https://github.com/fenjo26/Orbitra.link.git
cd Orbitra
# Install PHP dependencies
composer install --no-dev
# Install frontend dependencies
cd frontend
npm install
npm run dev # Start the dev server (http://localhost:5173)# In the project root
php -S localhost:8080 router.phpcd frontend
npm run buildOrbitra has no default account (admin/admin) — you set the administrator credentials yourself on first run.
The first time you open the admin panel (/admin.php), the system detects that no users exist yet and launches the initial setup wizard. In it you create your own administrator:
- Username — at least 3 characters
- Password — at least 6 characters (with confirmation)
- Timezone and interface language (one of 7 languages)
After the administrator is created the wizard no longer appears, and you log in with the username and password you set.
Full documentation is available in the docs/ folder:
- Overview — documentation navigation
- Architecture — technology stack and DB structure
- Features — detailed feature descriptions
- PWA & Push — PWA landings, web push campaigns, diagnostics
- Content Gallery — media library and MediaPicker
- API — REST API documentation
- Deployment — installation and configuration instructions
POST ?action=keitaro_import_sql— import a Keitaro dump
GET ?action=campaigns— list campaignsGET ?action=get_campaign&id=X— campaign dataPOST ?action=save_campaign— save a campaignPOST ?action=delete_campaign— delete a campaignGET ?action=campaign_report— campaign report
GET ?action=metrics— aggregated statisticsGET ?action=chart— chart dataGET ?action=trends— detailed analyticsGET ?action=conversions— conversion log
GET ?action=affiliate_networks— affiliate networksGET ?action=traffic_sources— traffic sourcesGET ?action=telegram_settings— Telegram bot settings
📖 Full API list: see docs/api.md
A full-screen campaign editor with tabs:
- General: name, alias, domain, source
- Finance: 6 payout models (CPC, CPuC, CPM, CPA, CPS, RevShare)
- Parameters: 30+ parameters (sub_id_1...30, keyword, cost and more)
- Integrations: ready-made scripts for Facebook, Google, TikTok, VK, Yandex
- S2S Postbacks: configure postbacks from affiliate networks
- Notes: text notes for the campaign
- Actions: reports, conversion log, traffic simulation
10 monitoring commands:
/stats [period]— statistics (today, 1d, 7d, 30d, yesterday)/campaigns— list campaigns with metrics/campaign ID— detailed statistics/top— TOP-5 campaigns by revenue/conversions— last 10 conversions/notify on|off— conversion notifications/daily on|off— daily summary/lang en|ru|uk|es|zh|fr|de— bot language
Testing streams and filters:
- IP — set the click's IP address
- User Agent — set the User-Agent
- Country — choose a country (US, RU, DE, GB, FR and more)
- Device — desktop, mobile, tablet
- Language — browser language (en, ru, de, fr, es, pt, zh)
| Model | Description |
|---|---|
| CPC | Pay per click |
| CPuC | Pay per unique click |
| CPM | Pay per 1000 impressions |
| CPA | Pay per action (lead) |
| CPS | Pay per sale |
| RevShare | Percentage of revenue |
On the Keitaro server, run:
# Connect to the Keitaro server
ssh root@YOUR_KEITARO_SERVER_IP
# Create the dump
bash -lc '
source /etc/keitaro/env/inventory.env
# Config for connecting to the DB
cat > /root/keitaro-mariadb.cnf <<EOF
[client]
user=$MARIADB_KEITARO_USER
password=$MARIADB_KEITARO_PASSWORD
host=127.0.0.1
port=3306
protocol=tcp
EOF
chmod 600 /root/keitaro-mariadb.cnf
# Dump the tables
TABLES="keitaro_affiliate_networks keitaro_groups keitaro_offers keitaro_domains keitaro_campaigns keitaro_campaign_postbacks keitaro_landings keitaro_streams keitaro_stream_filters keitaro_stream_offer_associations keitaro_stream_landing_associations keitaro_traffic_sources keitaro_ref_sources"
mysqldump --defaults-extra-file=/root/keitaro-mariadb.cnf \
--single-transaction --quick --skip-lock-tables \
"$MARIADB_KEITARO_DATABASE" $TABLES \
| gzip > /root/keitaro_orbitra_full.sql.gz
ls -lah /root/keitaro_orbitra_full.sql.gz
'
# Download the file
scp root@YOUR_KEITARO_SERVER_IP:/root/keitaro_orbitra_full.sql.gz .- Open Migrations in the admin menu
- Follow the instructions in the "How to create a Keitaro backup" block
- Upload the
keitaro_orbitra_full.sql.gzfile - Choose what to import (campaigns, offers, domains, etc.)
- Click "Show preview" to verify
- Click "Import Into Orbitra" for the real import
Orbitra supports seamless 1-Click Google Ads connection (similar to Keitaro tracker UX). To enable this feature, configure the following environment variables on your server:
Add these environment variables to your server configuration (e.g., in /etc/environment, systemd service file, or .env file):
# Google OAuth2 Client ID (Web application)
ORBITRA_GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
# Google OAuth2 Client Secret
ORBITRA_GOOGLE_CLIENT_SECRET=your-client-secret-here
# Google Ads API Developer Token
ORBITRA_GOOGLE_DEVELOPER_TOKEN=your-developer-token-
Create Google Cloud Project:
- Go to Google Cloud Console
- Create a new project or select existing one
- Enable the Google Ads API in the API Library
-
Create OAuth 2.0 Credentials:
- Navigate to APIs & Services → Credentials
- Click Create Credentials → OAuth 2.0 Client ID
- Application type: Web application
- Add this redirect URI (replace with your domain):
https://your-domain.com/api.php?action=google_ads_oauth_callback - Copy the Client ID and Client Secret
-
Get Developer Token:
- Go to Google Ads API Center
- Apply for or copy your existing Developer Token
- Paste it into the configuration
Once configured, users can:
- Click "Sign in with Google" button in Integrations → Google Ads Costs
- Select their Google account from the account chooser (all logged-in Gmail profiles appear)
- Automatically discover all accessible Google Ads accounts (including MCC hierarchies)
- Select which accounts to connect and save
If server-level OAuth credentials are not configured, the UI automatically shows the "Direct Token Connection" tab where users can manually enter:
- Developer Token
- OAuth2 Client ID
- OAuth2 Client Secret
- OAuth2 Refresh Token
- Customer ID
Orbitra ships with several built-in theme presets — Light, Dark, Green and Neon — plus a fully Custom theme where you set your own color palette (primary, backgrounds, text). Pick a theme in Settings → Branding.
Configure the logo, colors and name in Settings → Branding.
Switch the language in Profile → Settings. Seven languages are available: English, Russian, Ukrainian, Spanish, Chinese, French and German.
| Category | Technology |
|---|---|
| Backend | PHP 8.3+ |
| Database | SQLite 3 |
| Frontend | React 19.2.0 |
| Build Tool | Vite 7.3.1 |
| UI Framework | Tailwind CSS 4.2.0 |
| Icons | Lucide React 0.575.0 |
| HTTP Client | Axios 1.13.5 |
| Charts | Chart.js 4.5.1 |
| Date Utils | date-fns 3.6.0 |
| PHP Deps | Composer |
Fixed
- 🏠 Namecheap Buy & Park works again (PR #10, thanks @lucasvaz013) — Address Book contacts with ID
0(the primary address on many accounts) are no longer dropped, anddomains.createnow receives the full four-role contact set resolved viausers.address.getInfoinstead of the unsupported*AddressIdshortcut; contact requests go as form POST, keeping the API key out of the URL - 💰 Real registration prices — regular domains are quoted a one-year
REGISTERrate fromusers.getPricing(+ ICANN fee) instead of a misleading$0read off the premium-price field; premium domains keep their own price and fees; the currency shows in the dialog and the confirmation, and a missing quote disables the purchase button with a "price unavailable" notice - 🧪 Three new regression suites: pricing, contact resolution, zero address ID
Added
- 🤝 Partners block on Feedback & Support — a themed card under the contact grid with linked logo tiles: Pay2.House (virtual cards for Facebook / Google / TikTok Ads spend) and GroupBuySEO (group-buy access to Ahrefs, Semrush, ChatGPT Plus) to start with; extending the list is one SVG, one array entry and four locale strings
- 🌍 Partners copy ships in all seven locales
Previous releases — v1.5.4: 📱 PWA visit funnel (ordered screens: own + install-instructions + push card, per-screen statistics & tracking scripts, funnel-first constructor), 💱 postback payouts converted to the base currency (PR #9); v1.5.3: 🧩 extension overlay counts like the panel, 🧱 one safe-page predicate in core/ReportMetrics.php, 📊 honest safe-page hint + 👁 Visitors in the default preset; v1.5.2: 🎨 boot screen before the bundle parses, 🖥 Terminal & Aurora themes, 🗺 two-column login, 🤖 Telegram bot as a visual menu (pinned keyboard ×7 languages), 📸 Snapchat Ads template, 🖱 non-blocking update check, 📊 Profitability → Margin; v1.5.1: ⏱ time on LP for every visitor (visible seconds + scroll depth into the click, LP bounce/scroll/measured visits metrics, Time on LP (bucket) dimension), 🤖 Telegram polling mode (bare IP / plain HTTP / proxy, real Telegram errors on screen); 🎯 clicks = the offer funnel (pre-bound landing views count as visitors, CPV/EPV ÷ visitors), 📌 pinned identity columns, 🔗 CAPI content_id (PR #8), 🧱 versioned column-width storage; v1.5.0: 📱 PWA landings (store-style constructor, funnel beacons into the click, self-healing push subscription, direct domain→PWA binding), 🔔 Web Push on your own base (self-hosted VAPID keys, subscriber list + CSV, manual & event messages, cron-driven queue with retries and aging), 🖼 Content Gallery + shared MediaPicker (size contracts, cropping), 🔐 four crypto-layer defects in push delivery found by live device diagnostics; 🧩 {subid} on the landing→offer hop, service worker on bound domains, panel session lifetime, "database is locked" as a clean 503, silent save_user demotion; v1.4.1: 🐞 Affiliate Networks crash fix (issue #7), 🌍 System Status localization; v1.4.0: 📊 honest LP-funnel metrics (Real LP clicks / Real offer clicks / Real LP CTR), ⏱ landing→offer timing buckets, 🎚 "After the click" default for new landing streams, 🔐 roles enforced server-side + per-campaign scoping (issue #6); v1.3.11: 🏠 domain-root campaigns in production, 🔑 private postback key on install; v1.3.10: 📱 rotation rows as a placed grid below 640px, 🎨 campaign-name link parity on both surfaces; v1.3.9: 🔒 SSL chain verdicts + certificates-on-save, 🎯 LeadForge honest failures, 🛡️ scan protection, Domains rebuilt; v1.3.8: 🧹 stray ellipsis gone, centred values, checkbox column fixed, lint-zero tracker tables; v1.3.7: 🔀 full column reorder, ✂️ hard cell clipping, 🎯 centred headers.
Full version history: CHANGELOG.md.
Contributions are welcome! Please:
- Fork the repository
- Create a branch for your feature (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.
- GitHub Issues: https://github.com/fenjo26/Orbitra.link/issues
- Documentation: docs/
- Email: info@orbitra.link
Orbitra — a modern tracker for affiliate marketers and webmasters.
Tags: tracker, affiliate-marketing, keitaro-alternative, php-tracker, react-admin, cpa-network, traffic-management, split-testing, conversion-tracking