LINESERVE
Coming soon

File Storage — hosted in Kampala

Shared file storage in Uganda

One directory, mounted by every machine that needs it.

The moment a Kampala team puts a second web server behind the first, a question arrives that nobody planned for: where do the uploads go? A file written on server one is invisible on server two, so somebody bolts on an rsync, or nominates one machine as the real one, and a year later that machine is holding the business and cannot be rebooted. File Storage answers it properly — a managed NFSv4.1 filesystem with full POSIX behaviour, mounted by as many instances as you like at the same path, growing from gigabytes to a petabyte with no capacity to provision. It is coming to ug-1a in Kampala, priced per gigabyte stored in shillings from an indicative UGX 90. Tell us what your fleet is sharing today and you will hear when it is ready.

FromUGX 90/GB/month
  • Coming soon — join the waitlist
  • NFSv4.1 with full POSIX file locking and permissions
  • One filesystem, mounted by your whole fleet in ug-1a
  • Data residency for Uganda's Data Protection and Privacy Act — your data stays in-country
  • Elastic to a petabyte — priced per GB stored, in UGX

Launching soon · Billed in UGX

Pricing

Pay for what you store, nothing more

Three storage classes, one per-GB price each. No pre-provisioning, no minimums — capacity follows your data, measured hourly. In your currency, no forex.

Storage classPrice /GB/moThroughputLatency
UniversalPopularGeneral-purpose shared storage for most workloads.UGX 780100 MB/s, burst to 1 GB/s~2 ms
FastAnalytics, ML training data, media pipelines.UGX 1,350500 MB/s, up to 10 GB/s provisioned<1 ms
BasicInfrequently accessed files, archives, backups.UGX 90100 MB/s10–50 ms

You are billed on the data actually stored, measured hourly — there is no capacity to pre-provision. Fast provisioned throughput is $0.05 per MB/s, Basic reads are $0.01/GB, and snapshots are $0.05/GB/mo. Prices exclude VAT; local currency figures are indicative and settled at checkout.

Why the mount has to be beside the fleet

A filesystem is the chattiest thing you own

Object storage tolerates distance. You put a cache in front of a bucket and the ocean stops mattering. A mounted filesystem is the opposite kind of animal: opening a file, listing a directory, taking a lock, appending a line and closing the handle are separate operations, each one a small conversation between the client and the server, and a page that touches forty files holds forty of those conversations before it renders. Distance does not slow a filesystem down by a little. It multiplies.

Which is why the country the mount lives in is not a detail for this product. Uganda has no coastline and no cable landing station, so international capacity arrives on terrestrial fibre through a neighbour — east from the Mombasa landings across Kenya and over the border at Malaba or Busia, or south from Dar es Salaam and across at Mutukula — roughly a thousand kilometres of somebody else's ground before a packet reaches Kampala. A protocol built on many small round trips is the worst possible thing to run across that. Put the filesystem in ug-1a and it sits in the same city as the instances mounting it, which is the only arrangement this class of storage is happy with anywhere in the world.

The reach outward is a separate question with a better answer than most Ugandan buyers expect. The Uganda Communications Commission put the national fibre optic network at 80,257 route-kilometres in June 2026, and the state backbone carries a Kampala origin on to Gulu, Mbarara, Mbale, Jinja and Arua. Your servers hold the mount in Kampala and answer users across that network; nothing about serving a Ugandan audience requires the files themselves to travel.

There is nothing nearer to compare against, either. No large public cloud runs a region in Uganda — the full regions are in Cape Town and Johannesburg, and the closest edge sits in Nairobi, another country with its own regulator. A Ugandan business that wants several servers sharing one directory today is either running that filesystem itself, or mounting it across a border.

1 PB

Ceiling a single filesystem grows to, elastically

80,257 km

National fibre optic network (UCC, June 2026)

0

Submarine cables landing in Uganda

99.99%

Availability SLA planned for the first release

What the other two cannot do

This is the whole reason the product exists, and it is worth being precise about. A block volume attaches to one instance at a time — it is that machine's disk and no other machine can mount it. Object storage is an S3 API: buckets, keys and HTTP, with no directories to rename, no file locking and no way for an application to seek into the middle of a file. A shared filesystem gives you both of the things they withhold: the same path on every server, and POSIX semantics underneath it — locking, permissions, symlinks and hard links — so software written against a local directory works with nothing changed.

The machine everybody SSHes into

Almost every Ugandan team that needs shared files has already built this once. One server exports a directory, the others mount it, and the arrangement holds until its disk fills, its kernel needs a patch nobody dares apply, or it goes down and takes four applications with it. Running your own NFS host is easy to start and unpleasant to keep. Handing that over is the point of a managed filesystem.

The platform

Everything shared storage should be

Managed, elastic, and replicated — mounted by your whole fleet, with no file server to run.

Fully managed

No NFS servers to provision, patch, or fail over — we run the whole file system for you.

Elastic scaling

Capacity grows and shrinks with your data, from gigabytes to a petabyte, with nothing to provision.

Multi-AZ replication

Every file is synchronously replicated across availability zones and survives the loss of a zone.

Unlimited concurrent mounts

Thousands of instances mount the same file system at once, with real-time consistency across them.

POSIX-compliant NFSv4.1

Full file locking, permissions, symlinks, and hard links — your apps work unchanged.

Encryption everywhere

AES-256 at rest and TLS in transit, with keys managed for you or brought yourself.

Lifecycle policies

Auto-tier cold files down to Basic and save up to 60% without moving a thing.

Snapshots

Instant, incremental snapshots let you restore a whole file system or a single file in seconds.

Access points

Per-tenant roots and permissions give each app or team its own view of the file system.

Regions

Kampala is home. The other three are a border you choose to cross.

Deploy in ug-1a and the machine is in Kampala, in the country its users are already standing in. The region is chosen per instance rather than per account, so nothing about this decision is permanent or global: a production database in Kampala, a build runner wherever is convenient, a backup target somewhere else entirely, all on the same key and the same API.

The other three are Nairobi, Dar es Salaam and Lagos, on that same account, the same API and the same shilling invoice. Here is where a Ugandan buyer has to read the map differently from everyone else on it. For a business in Nairobi, ke-1a is home. For you it is abroad twice over: a copy of Ugandan personal data held there is a transfer out of Uganda that belongs in your section 19 record, and a request served from there still crosses the border at Malaba or Busia before it reaches your customer. Regional is not the same word as local, and Uganda is the market where the difference is easiest to see.

That said, the corridor is real and some businesses genuinely live on it. Trade moves between Kampala, Kisumu, Nairobi and Mombasa; the crude pipeline out of the Albertine region runs 1,443 km to Tanga on the Tanzanian coast; freight, agri-export, logistics and contracting firms bill customers in three countries. When your operation is actually in two markets, tz-1a or ke-1a stops being a distant region and becomes the second half of your own footprint. And when what you want is somewhere to put a standby, a replica or an offsite copy, another region on the same account is a configuration change rather than a second supplier to onboard.

Live

Uganda

Kampala

~3 ms

typical, within metro · Data stays in Uganda

Live

Kenya

Nairobi

~2 ms

typical, within metro · Data stays in Kenya

Live

Tanzania

Dar es Salaam

~6 ms

typical, within metro · Data stays in Tanzania

Live

Nigeria

Lagos

~4 ms

typical, within metro · Data stays in Nigeria

Expansion zonesSouth Africa · za-1aGhana · gh-1a

Use cases

Built for shared workloads

Shared web content

Every server sees the same uploads, themes, and media — no rsync, no drift, no sticky sessions.

Kubernetes RWX volumes

Many pods, one volume. The CSI driver gives you ReadWriteMany persistent volumes out of the box.

ML & analytics

Share datasets across GPU workers with high-throughput reads, no copying between nodes.

CI & dev environments

Shared source, build artifacts, and caches across runners and workspaces, live for every job.

How it works

Shared storage in three steps

1

Create a file system

Pick a storage class — Universal, Fast, or Basic. There is no size to provision.

2

Mount over NFS

Run one mount command on any instance — or request a RWX volume in Kubernetes.

3

Store and share

Capacity follows your data as it grows, and lifecycle policies tier cold files down.

Uptime SLA

99.9%

  • DDoS filtering is included, and so is the traffic
  • Service credits applied automatically when we miss the SLA
  • Measured monthly, per region, on network and power availability

Support

East Africa Time all year, and a queue that already knows Uganda

Two channels with two different jobs. A signed-in ticket arrives already carrying the account, the region and the instance, so the first reply is about the fault rather than about which machine you meant. [email protected] is the commercial door: a quotation against a purchase order, transfer details ahead of a payment run rather than during it, a billing account configured with your TIN and registered name before the first invoice, and the SLA terms and credit process in writing while you are still choosing.

Ahead of both sits status.lineserve.net. A region-wide event is published there while a reply is still being typed, and thirty seconds on it turns "the site is down" into "my instance is unreachable and the status page is clear" — a different ticket, and a far shorter one.

What that ticket should carry, in the order it is read: the region and the instance, the EAT time the behaviour started, the last thing that changed before it, the actual error text rather than a description of it, and whether it reproduces from more than one Ugandan network. That last one carries more weight here than almost anywhere. Uganda is a two-operator market, and an MTN handset, an Airtel handset and an office fibre line disagreeing about your service is a completely different fault from all three failing together — it is worth thirty seconds of your time and it can save an hour of everyone's.

Uganda runs on East Africa Time, UTC+3, and has never observed daylight saving, so a change window agreed in EAT means the same thing in January and in July. You share that clock exactly with Nairobi and Dar es Salaam and sit two hours ahead of Lagos, which matters when you are scheduling work across regions. The Ugandan commercial day generally runs 08:00 to 17:00, Monday to Friday. One scheduling detail that catches people out: a Ugandan public holiday falling on a weekend stays on that date rather than moving to the Monday, so the calendar is not the same shape as some of its neighbours'.

The last part of local support is vocabulary rather than hours. The person reading your ticket knows what an operator collections callback is and why it retries, knows what the border crossing at Malaba has to do with the traceroute you are staring at, and knows why your finance office wants a TIN on the document before the first billing run. None of that has to be explained before the actual problem can be. Buy from somewhere that has never sold into Uganda and the first twenty minutes of every serious ticket go on describing the country.

Why Lineserve

Managed NFS beats running your own

Running your own NFS server means patching, capacity planning, and failovers when a node dies. A managed, elastic file system takes all of that off your plate.

CapabilityLineserveSelf-run NFS server
No NFS server to run or patch
Elastic capacity, no pre-provisioning
Replicated across availability zonesSometimes
Thousands of concurrent mountsSometimes
Automatic lifecycle tiering
Billing in UGX
Data stays in Uganda

Pricing & invoicing

Per gigabyte stored, with no capacity to buy in advance

The commercial shape of this product is different from the disk it replaces, and the difference is worth understanding before you size anything. A block volume bills on the size you provisioned whether you filled it or not. A shared filesystem bills on what is actually in it and grows as you write, so there is no ritual of guessing a number twelve months ahead, no emergency when the guess was low, and no quiet waste when it was high. Nothing to provision is the feature, and the invoice is where you notice it.

Three classes will separate the cost of a file that is read constantly from one that is read once a year. Universal, at an indicative UGX 780 per GB a month, handles 100 MB/s with burst to 1 GB/s and is where most workloads belong. Fast, at UGX 1,350, offers 500 MB/s and up to 10 GB/s provisioned, for analytics, media pipelines and training data. Basic, at UGX 90, is for files that are kept rather than used — completed programme archives, finished projects, last season's records. One filesystem per class, mounted alongside each other, is a normal design rather than a compromise.

Every figure comes from a Ugandan price list rather than a dollar rate converted at the moment the page loads, which is what makes a budget line survive contact with a finance committee. VAT sits on top at 18%, administered by the Uganda Revenue Authority, and there is nothing to interpret about whether the category is in scope: URA's published list of taxable electronic services opens with web hosting. Displayed prices exclude VAT and it is calculated separately at checkout.

What your accounts department will want on the document

Uganda's invoicing regime is EFRIS, and URA treats a VAT credit claimed on a purchase unsupported by an e-invoice as non-compliance, with information technology and communications among the sectors required to use the system. The practical consequence is that supplier documentation is a procurement question rather than an accounting one. Send [email protected] your TIN, your registered name exactly as URA holds it, a billing email that reaches finance, and any grant, purchase-order or cost-centre code the document must carry, and the account is configured once instead of corrected two quarters later.

Model the growth curve, not the starting number

Shared directories only ever get bigger, because deleting somebody else's file is nobody's job. Work out what your uploads directory gained over the last twelve months, apply it forward, and decide which of it belongs on Basic. That is a short exercise now and an awkward conversation later.

Figures are indicative launch pricing rather than an amount payable today, and exclude VAT; Uganda's 18% is added at checkout. Snapshots bill separately from the filesystem they were taken from. Ugandan accounts settle in UGX by MTN Mobile Money, Airtel Money, bank transfer or card.

Data residency

The directory nobody has ever inventoried

Ask an organisation where its personal data is and you get an answer about databases. Then open the shared folder. Scanned consent forms. Photographs of national ID cards attached to a loan file. A spreadsheet of beneficiaries somebody exported in 2023 for a donor report and left where it landed. Signed contracts, HR records, CVs, a folder of passport scans named after the person. None of it went through a schema review. All of it is personal data about identifiable Ugandans, and on a fleet of servers it is exactly the material a shared filesystem is created to hold.

Uganda's Data Protection and Privacy Act, 2019 — Chapter 97 of the Laws of Uganda — is enforced by the Personal Data Protection Office, which sits within NITA-U and has been operational since August 2021. Section 29 requires data collectors, processors and controllers to register, expressly reaching entities outside Uganda that process Ugandan citizens' personal data, and registration is renewed each year. Section 19 allows personal data to leave the country only where the destination offers protection at least equivalent to the Act, or where the data subject has consented, with Regulation 30(2) requiring consent for onward transfers. Penalties under the Act reach 245 currency points or 2% of annual gross turnover for a corporation, and section 23 requires immediate notification once unauthorised access is reasonably suspected.

There is no per-transfer permit to file in Uganda, which is lighter than some regimes nearby. What replaces it is an evidence duty, and the Office has shown it will exercise it: in July 2025 it decided a complaint against a foreign company with no Ugandan establishment, finding it in breach for not registering and for failing to evidence a lawful basis for taking the complainants' data out of the country. Records of the legal basis, the safeguards and the justification for a cross-border transfer are expected to exist and to be producible during an audit or an investigation. For a folder that grew rather than being designed, producing that record means first working out what is in it.

A filesystem created in ug-1a is held in Kampala and does not leave Uganda without your instruction. That is data residency for Uganda's Data Protection and Privacy Act. Registration, your records of processing and your own assessments stay with you as controller — and every one of them is shorter when the documents never crossed a border in the first place.

Sync is a border crossing with no paperwork

The way a shared directory leaves a country is rarely a decision. It is a desktop sync client somebody installed, a backup job pointed at whatever storage was already configured, or a copy taken to work on over a weekend. Keeping the authoritative copy on a mount in Kampala, and treating anything that replicates it elsewhere as a transfer worth a sentence in a register, is the difference between a residency position and a diagram of one.

Not everything in there is sensitive

Static assets, compiled front-end bundles, package caches, container build context and generated thumbnails carry no personal data and raise none of these questions. Drawing that line explicitly — this filesystem holds documents about people, that one holds artefacts — makes the rest of the policy enforceable instead of aspirational.

Who mounts it

The Ugandan fleets that need one path, not five copies

Shared storage gets bought at a specific moment: the second server. Everything below is a version of that moment, in a sector that reaches it early.

WordPress and Laravel fleets at Kampala agencies

The most common request there is. Two or three web servers behind a balancer, one uploads directory, and a media library that has to look identical from all of them — otherwise an image uploaded through the admin panel is missing for two-thirds of visitors and the client rings on a Saturday. The same applies to Laravel storage directories, Nextcloud data and any CMS that writes to disk. Kampala's agency and freelance scene is the country's main reseller channel, one buyer with many client sites, and this is the piece of infrastructure that lets those sites scale past a single machine without a rewrite.

NGO and donor programme document stores

Structurally heavy in Uganda's buyer mix, with Kampala holding UN country entities and a large international NGO presence and field operations running out of Gulu and Arua. The pattern is one document store read by several applications at once: ODK and KoboToolbox attachments landing from the field, DHIS2 files, an M&E dashboard reading the same directory, a grant-accounting system writing into it, and a reporting job sweeping it at quarter end. The NGO Bureau has itself reminded organisations that they must register under the Data Protection and Privacy Act, and a beneficiary document store is precisely the holding that obligation is about.

Media, broadcast and production teams

A working set nobody can copy around: raw footage, project files, exports and the render machines chewing through them, with several editors opening the same volume at once. Tourism marketing, broadcast and the agency production floor share the shape — files too large to email, too active to archive, too shared to live on one workstation. Fast is the class that workload is asking for; last year's finished projects belong on Basic and stay mounted beside it.

Universities, research groups and campus IT

RENU connects Uganda's universities, and behind it sit learning platforms whose whole year comes down to two weeks. Term start puts every student on the same system at once, and if the LMS runs on several application servers they all need the same uploads directory. Around it: home directories, institutional repositories, shared research datasets that outlive the machine that collected them, and lab groups that want a path rather than a bucket because their analysis tools only understand files.

SACCOs, microfinance and the document side of lending

Tier 4 institutions supervised by the Uganda Microfinance Regulatory Authority, and the banks and SACCOs above them, keep a second archive alongside the core system: scanned member applications, guarantor forms, ID copies, loan agreements, board minutes. Several systems read it — the core platform, a member portal, a reporting tool, a compliance officer with a spreadsheet — which is a shared mount by definition. The Bank of Uganda's cyber and technology risk management guidelines have bound supervised institutions since 1 December 2024, so where that archive sits is a supervised question rather than an IT preference.

Oil, gas and Albertine contractor document control

The contractor economy headquartered in Kampala and working out of Hoima, Buliisa and Kikuube runs on documents that must be produced intact years later: HSE and incident files with photographs, survey and environmental datasets, tender packs, local-content records, drawings under revision control. Site data aggregates back to Kampala over constrained links and then several systems read it in place. One filesystem, many readers, a retention period measured in contract lifetimes.

Container platforms that need a shared volume

Kubernetes gives you ReadWriteOnce almost anywhere and ReadWriteMany almost nowhere, which is why a shared filesystem is usually the missing piece rather than an extra. Several pods writing to one directory — an ingestion queue on disk, a shared media path, a legacy application containerised without being rewritten — is a request for an RWX volume, and it is the same filesystem your virtual machines mount.

Indicative launch pricing per GB stored a month: Universal UGX 780, Fast UGX 1,350, Basic UGX 90. Prices exclude VAT. These are the figures we expect to open with rather than a charge you can incur today.

Planning ahead

How your files get onto a shared mount when it lands

From the NFS server you run yourself

The usual Ugandan starting point, and the least dramatic move, because both ends speak the same protocol and your applications already expect a path. At launch the work is to mount the new filesystem alongside the old export, copy with rsync while everything keeps running, run a second pass to catch what changed, then swap the mount point and restart the services that hold open handles. Permissions, symlinks and locks survive the trip, which is the practical benefit of full POSIX at both ends. What changes afterwards is who gets paged: capacity, patching and failover for that host stop being your team's problem, and the disk that quietly filled up on a Friday stops being a class of incident.

From a filesystem mounted across a border

Some Ugandan fleets are already sharing files with a mount that terminates in Nairobi, Johannesburg or Europe, usually because that is where the servers ended up rather than because anyone chose it. That arrangement pays the overland haul to the coast on every one of the thousands of small operations a filesystem performs to render a single page, and it puts the documents — consent forms, ID scans, beneficiary files — outside Uganda, where section 19 and the Office's evidence expectations apply to them. Moving the fleet and the mount into ug-1a together settles both at once. Plan it as a copy, a verification pass and a cutover window rather than a switch, and budget for the fact that every byte comes home across that same haul once.

Tell [email protected] what your servers are sharing today, roughly how much of it there is and what would mount it, and you will hear from us when there is something to mount. Migration planning and assistance are included at no extra charge.

FAQ

Questions, answered

A Block Storage volume attaches to one instance, like a disk. A file system mounts on thousands of instances at once over NFS, with every mount seeing the same files in real time. Use Block for databases; use File when fleets share data.

NFSv4.1 with full POSIX semantics — file locking, permissions, hard and symbolic links. Any Linux distribution mounts it natively; macOS and Windows work through their NFS clients.

There's nothing to provision. The file system grows and shrinks with the data you store, from gigabytes to a petabyte, and you pay only for what you actually use, measured hourly.

Yes. The CSI driver supports dynamic provisioning and ReadWriteMany (RWX) volumes, so many pods across many nodes can share the same persistent volume.

Universal gives a 100 MB/s baseline with bursts to 1 GB/s — right for most workloads. Fast starts at 500 MB/s with provisioned throughput up to 10 GB/s and sub-millisecond latency for analytics, ML training, and media pipelines.

Set a policy and files that go unused — say for 30 days — move automatically to the cheaper Basic class, cutting storage costs by up to 60%. The move is transparent; applications keep the same paths.

Yes. Every file system is replicated across multiple availability zones within the region at no extra cost, backed by a 99.99% availability SLA. Cross-region replication is available for disaster recovery.

Point-in-time snapshots are instant and incremental. Restore individual files from a read-only mount or roll back the whole file system, on demand or on a schedule.

Yes. Connect over VPN or a direct link and on-prem machines mount the file system exactly like cloud instances — useful for hybrid setups and migrations.

It is in build and there is no published date. Send [email protected] the workload, the rough size and how many instances would mount it, and you go on the list — the waitlist hears first, with a plain account of what the first release covers.

Not yet. What you can do before then is size it with us, get launch pricing in writing against your account, and be in the first group given access. Cloud servers, VPS and object storage in ug-1a are live if you need capacity in Kampala in the meantime.

In ug-1a, our Kampala region. A filesystem is created in a region, mounted by instances in that same region, and stays in Uganda unless you copy the contents out yourself.

Thousands, simultaneously, with real-time consistency across them — that is the whole point of the product. Every instance sees the same files at the same path, and a write on one is visible to the rest.

A block volume attaches to a single instance and is that machine's disk; nothing else can mount it while it is attached. File Storage is one filesystem that many instances mount at the same time. If you are scaling one database, you want a volume. If you are scaling a web tier that shares an uploads directory, you want this.

Object storage is an S3 API — buckets, keys and HTTP, ideal for archives, backups, media served to browsers and anything a CDN sits in front of. It has no directories to rename, no file locking and no partial writes. File Storage is a POSIX filesystem you mount at a path, so applications written against a local directory work with nothing changed. Plenty of systems end up using both, in the same region.

NFSv4.1, with full POSIX behaviour — file locking, permissions, symlinks and hard links. One mount command on any instance in the region, or a ReadWriteMany volume claim if you are running Kubernetes.

It grows elastically from gigabytes to a petabyte, and there is no capacity to provision in advance. You are billed on what is stored rather than on a size you reserved, so the filesystem grows as you write to it.

Indicative launch pricing per GB stored per month is UGX 780 for Universal, UGX 1,350 for Fast and UGX 90 for Basic, with snapshots billed separately. Prices exclude VAT. Those are the figures we expect to open with, published so you can plan against them rather than an amount payable now.

In Uganda Shillings, by MTN Mobile Money, Airtel Money, bank transfer or card, on the same account as everything else you run here. Nothing converts and no international transaction lands on the statement.

No. Displayed prices exclude VAT. Uganda's standard rate is 18%, administered by the Uganda Revenue Authority, and it is calculated and shown separately at checkout.

Yes. A filesystem created in ug-1a is held in Kampala and is not moved out of the country without your instruction, which gives you data residency for Uganda's Data Protection and Privacy Act.

It settles the location, which is the part a hosting provider supplies. Registration with the Personal Data Protection Office and its annual renewal, your notices, your lawful basis and your section 19 records stay with you as controller — and the last of those is a much shorter document when the files never left Uganda.

Those regions run on the same account, so it is a configuration rather than a project. Make the call deliberately: a copy of Ugandan personal data in another country is a cross-border transfer under section 19, and the Office expects a record of its legal basis and safeguards to exist if it asks. Build artefacts and static assets raise no such question.

Instant incremental snapshots restore a whole filesystem or a single file, and they bill separately from the storage they were taken from. Point any additional backup at the Kampala object storage endpoint and the whole path stays inside Uganda.

Customer references are available under NDA for the products that are live today. Tell [email protected] what you are building and the team will point you at the closest match.

Shared storage for your whole fleet, almost here

Managed NFS is launching soon, close to your users. Talk to us for early access, and pay in local currency with no card required to start.

Launching soon · 99.99% availability SLA · Billed in UGX