The ERP that closes the month, the backend behind the online store, the database the branches write to all day. This page is for the person who has to decide where that system lives: how big the server should be, whether it should be one machine or two, how it is protected, and what it costs when plans change.
Start your free 14-day trial — no credit card
Hosted in Riyadh. Monthly prices in SAR, paid from a prepaid wallet. Opening the account is free; servers are charged only when you launch one.
Most undersized application servers were sized by counting users. Users are a poor guide: forty accountants posting journals load a system very differently from forty warehouse scanners. Three measurements from the system you run today give a far better answer, and all three take ten minutes to collect.
A contracting company in Riyadh runs an open-source ERP for 60 staff. The database is 18 GB, of which about 7 GB is touched daily. Eight application workers at roughly 250 MB each come to 2 GB. Allow 2 GB for the operating system, the web server and scheduled jobs, and another 2 GB of headroom so that a heavy payroll report does not push the machine into swap. That is 13 GB of memory, with the month-end peak using three cores. The fit is the 16 GB plan, Riyadh 3. The 8 GB plan would run — and would become unusable for two days every month, which is exactly when the finance team is watching.
The same arithmetic for a store backend usually lands differently. An order-management API with a 3 GB database and a queue worker needs little memory but wants a second core so that a burst of checkout requests does not wait behind an export job: Riyadh 2 is the honest starting point. If you would rather compare the five plans line by line, the VPS specifications and price list does that; the rest of this page is about how to run what you choose.
One check before you commit to a long term: if you depend on closed-source software from a vendor, confirm during the trial period that the vendor supports the Linux distribution and the processor architecture of the server (uname -m tells you in one line). Open-source stacks — PostgreSQL, MariaDB, Odoo, ERPNext, PHP, Node, Python, Java, Docker — are not a concern.
Monthly prices in SAR, excluding 15% VAT. Cancel any time — unused prepaid days are refunded pro-rata.
| Plan | What you get | Price / month |
|---|---|---|
| Riyadh 1 | 1 vCPU · 4 GB RAM · 50 GB disk | 99 SAR |
| Riyadh 2 | 2 vCPU · 8 GB RAM · 80 GB disk | 189 SAR |
| Riyadh 3 | 4 vCPU · 16 GB RAM · 160 GB disk | 379 SAR |
| Riyadh 6-Core | 6 vCPU · 24 GB RAM · 240 GB disk | 569 SAR |
| Riyadh 4 | 8 vCPU · 32 GB RAM · 320 GB disk | 749 SAR |
This is the architectural decision that matters most, and the price list makes it unusually easy to reason about. Riyadh 3 costs 379 SAR a month. Two Riyadh 2 servers cost 378 SAR a month. For practically the same money you can have one machine with 4 vCPU and 16 GB, or two machines with 2 vCPU and 8 GB each. Neither is better in general. Each is better for a particular company.
| Question | One server | Application + database servers |
|---|---|---|
| Who looks after it? | One part-time administrator or an outside consultant | Someone comfortable maintaining two machines and the link between them |
| What happens during a heavy report? | The report and the users compete for the same memory and cores | The database works hard; the screens stay responsive |
| Exposure to the internet | The database shares a machine with a public web server, protected by firewall rules | The database server can be launched as Private, with no public address at all |
| Growing later | Resize the single machine; everything grows together | Give memory to the database or cores to the application, whichever is short |
| Backups and restores | One machine to dump and copy | Two routines, but a database restore does not touch the application |
| Maintenance window | Every restart takes the whole system down | The application can be updated while the database keeps running |
Our advice to most companies under a hundred users is unglamorous: begin on one properly sized server, and split when one of three things happens — reports start to slow data entry, an auditor or a customer's security questionnaire asks why the database has a public address, or the two halves clearly need different amounts of memory. Splitting later is a planned evening's work: launch the second server, restore the latest dump onto it, point the application's connection string at the new private address, and close the old port.
When you launch a server in the portal you choose Public or Private networking. A Private server has no public address: it can still fetch operating system updates, but nothing on the internet can open a connection to it, and you administer it by connecting through your application server. That is the right home for PostgreSQL, MariaDB or Redis. The default account limit of 5 servers and 32 vCPU is enough for a production pair, a staging pair and a utility machine.
Every Riyadh server has a firewall that you edit from the portal. It is enforced outside the server, so it keeps working even if someone flushes the rules inside the operating system by mistake. A rule is a protocol (TCP, UDP or ICMP), a port or a range of ports, and a source address range; a server can hold up to 50 of them. The discipline is simple: list who genuinely needs to reach each port, and write that — not "anywhere" — into the source.
| Port | Purpose | Source to allow |
|---|---|---|
| 443 (and 80 for the redirect) | Staff and customers using the application | Anywhere — or only your office and branch addresses if the system is internal |
| 22 | Administration over SSH | The fixed address of your office or VPN only, never anywhere |
| 5432 or 3306 | Database connections | The application server's address only; nothing if both run on one machine |
| A custom port for an integration | A bank, payment or logistics partner calling your API | The partner's published address range |
| ICMP | Reachability checks from your monitoring | Your monitoring address |
Two practical notes. If your office connection in Jeddah or Khobar has a changing address, do not solve it by opening SSH to the world: put a small VPN in front, or ask your internet provider for a fixed address. And if the application sends invoices or notifications by email, relay them through an authenticated mail service on the submission port rather than straight from the server on port 25 — direct outbound SMTP from cloud servers is restricted. A mailbox on Skyline business email does the job and keeps your domain's SPF and DKIM clean.
We would rather you read this paragraph now than during an incident. On a Riyadh server today, the portal does not take image snapshots or scheduled whole-server backups for you. The data inside the server is yours to protect, and for a business system that means a routine, not a good intention.
A routine that works for an ERP or a store backend has three layers:
Before an ERP version upgrade or a large data import, take a fresh dump, copy it off the server, and note the exact application version. If your team is cautious — and with accounting data it should be — rehearse the upgrade first on a staging server restored from that dump. A staging server that exists for one month of the year is a small line in the budget compared with a failed upgrade in the week the VAT return is due. Keeping those copies inside Saudi Arabia is also the simplest answer when a customer asks where their data is held; our note on Saudi data residency in practice covers that conversation.
Riyadh servers are billed by the month, in advance, from a prepaid wallet held in Saudi riyals. There is no hourly billing on Riyadh plans, and no usage meter ticking behind the price. You choose how far ahead to pay:
| Term | Riyadh 3 as an example (excl. VAT) | With 15% VAT | Who usually picks it |
|---|---|---|---|
| 1 month | 379.00 SAR | 435.85 SAR | New projects, staging servers |
| 3 months | 1,137.00 SAR | 1,307.55 SAR | Companies that budget by quarter |
| 6 months | 2,274.00 SAR | 2,615.10 SAR | Project-based work with a known end date |
| 12 months | 4,548.00 SAR | 5,230.20 SAR | Procurement that wants one purchase order a year |
The monthly price is the same on every term. We do not discount longer terms; they exist because a Saudi finance department would rather approve one payment than twelve. Each charge produces a ZATCA e-invoice in riyals with the VAT shown separately. The portal can also display prices in 17 currencies for colleagues in Dubai, Kuwait or Cairo, but that is a reading aid: the charge and the invoice are always in SAR.
Suppose you are on Riyadh 2, paying monthly, and with 20 days of a 30-day term remaining you decide the ERP needs Riyadh 3. You pay the difference between the two prices for those 20 days: (379 − 189) × 20 ÷ 30 = 126.67 SAR, plus 19.00 SAR VAT, so 145.67 SAR leaves the wallet at the moment of the resize. From the next renewal you simply pay the Riyadh 3 price. The same rule applies on a yearly term, where the remaining days are counted against the whole year.
Three operational details. The server must be stopped before it is resized, so book a window. The wallet must hold the pro-rated amount or the portal will refuse and tell you the figure. And a move to a smaller plan refunds nothing for the current term; the lower price begins at the next renewal — so on a 12-month term, size with care before you prepay.
A short list, so you can rule us out quickly if one of these is a requirement.
What is left is deliberately plain: a correctly sized Linux server in Riyadh, a firewall you control, private networking for the database, a monitoring tab with usage charts, a fixed price in riyals and support in Arabic and English for the platform itself.
Start with one server while the database fits comfortably in memory next to the application and a short maintenance window is acceptable. Move the database to its own server when month-end reports slow the screens everyone else is using, when you want the database to have no public address at all, or when the two parts need to grow at different speeds. On Skyline the second server can be launched as Private, so only your application server can reach it.
Yes. A resize is done on a stopped server: stop it from the portal, choose the larger Riyadh plan, start it again. CPU and memory change; the address and the disk contents stay. Plan it as a short maintenance window outside working hours rather than in the middle of a sales day.
Only the difference between the two plan prices for the days that remain in the term you already paid for, plus 15% VAT, taken from the wallet at the moment of the resize. If you move down to a smaller plan nothing is refunded for the current term, and the lower price applies from the next renewal.
Yes. Each rule in the portal firewall has a protocol (TCP, UDP or ICMP), a port or port range and a source address range, and a server can hold up to 50 rules. Set the source of the database rule to the address of your application server instead of the whole internet. Better still, launch the database server as Private so it has no public address to begin with.
Do not build on it. Direct outbound SMTP from cloud servers is restricted, as it is on most cloud platforms, to keep the address ranges off spam blocklists. Have the application hand its invoices and notifications to an authenticated mail service on the submission port, for example a Skyline Mail mailbox, and they will be delivered with proper SPF and DKIM.
By default a team can run up to 5 servers with a combined 32 vCPU. That covers an application server, a database server, a staging copy and room to spare. If a project needs more, open a support request from the portal and the limit is reviewed for your team.
The portal can display prices in 17 currencies, including the Gulf currencies and the US dollar, using a daily exchange rate. That is a reading aid only. The wallet, the charge and the ZATCA e-invoice are always in Saudi riyals, so the figure your accountant books never moves with a rate.
Each Riyadh plan lists 10 TB of monthly transfer in the launch wizard. For an ERP, an API backend or an internal tool that is far beyond normal use, because screens and API calls are small compared with video or file distribution.
Work out your three numbers, open a free account, and walk through the launch wizard: plans, Public or Private networking, firewall and term are all visible before anything is charged.
SAR 50 free credit — code SKY30 at signup
No card to start. Enter code SKY30 when you sign up and your wallet opens with SAR 50 of credit.