What can you do with a 1 GB VPS? 15 useful and fun things to run
One gigabyte of RAM sounds small, and it is the smallest class of VPS most people buy. It is also the sweet spot for a lot of useful things. Most of the services people actually want running all day (a VPN, a password manager, a website, a monitoring tool) need tens of megabytes, not gigabytes. This guide goes through fifteen things that run well on a 1 GB plan, how much memory each one really uses, how to set it up, and what to watch out for. It also says plainly what does not fit, so you do not buy the wrong plan.
1 GB VPS plans in stock right now, cheapest first
- 1 GB KVM VPS Special1 CPU · 1 GB RAM · 20 GB disk · 3 TB bandwidth · New York, Los Angeles, Chicago$21.99/yrabout $1.83/moView at RackNerd
- Storage VPS Special - 100GB Storage1 CPU · 1 GB RAM · 100 GB disk · 10 TB bandwidth · Los Angeles, Dallas, Chicago$35.00/yrabout $2.92/moView at RackNerd
- Ryzen-1GB (Linux)1 CPU · 1 GB RAM · 15 GB disk · 1 TB bandwidth · New York, Chicago, Seattle$194.29/yrabout $16.19/moView at RackNerd
- KVM-1GB2 CPU · 1 GB RAM · 50 GB disk · 1 TB bandwidth · Los Angeles, Dallas, Chicago$215.88/yrabout $17.99/moView at RackNerd
In stock when this page loaded. See every plan
What is in this guide
- What a 1 GB VPS gives you
- Your memory budget, and how to stretch it
- Privacy and access: a personal VPN, a mesh VPN exit node, a password manager, network-wide ad blocking, an SSH proxy and jump host
- Publishing: a website or blog, an internet radio station
- Tools you run for yourself: uptime monitoring, private Git hosting, an RSS reader, always-on file sync, off-site backups, bots and scheduled jobs, an IRC bouncer
- For fun: small game servers
- What does not fit in 1 GB, and when to step up
What a 1 GB VPS gives you
Plans in this class normally come with one CPU core, 1 GB of RAM, somewhere between 15 and 30 GB of disk, and a monthly bandwidth allowance of a terabyte or more. The exact numbers vary from plan to plan, so check the listing above. They are KVM virtual servers, which means you get a full Linux system of your own with root access, and you can install anything that runs on Linux.
The one resource that decides what fits is memory, followed by disk. A single CPU core is enough for almost everything below, because the services are idle most of the time and only wake up when you use them. Bandwidth matters only for a few jobs (a VPN you stream through, a radio station), and I point those out.
Your memory budget, and how to stretch it
A fresh Debian or Ubuntu server uses roughly 100 to 250 MB of RAM sitting idle, depending on the distribution and what is switched on. That leaves 700 MB or more for your own services. The table shows rough idle figures for the tools in this guide. Treat them as ballpark numbers; yours will differ with settings and how much data you store, so measure with free -h and, for containers, docker stats.
| Service | Typical idle memory |
|---|---|
| WireGuard VPN | almost nothing (it runs in the kernel) |
| nginx serving a static site | 5 to 15 MB |
| Vaultwarden (password manager) | 10 to 50 MB |
| AdGuard Home (DNS ad blocking) | 40 to 100 MB |
| Syncthing | 50 to 150 MB (grows with the number of files) |
| Forgejo or Gitea (Git hosting) | 80 to 200 MB |
| Uptime Kuma (monitoring) | 100 to 200 MB |
| Miniflux with PostgreSQL (RSS) | 80 to 180 MB combined |
| ZNC (IRC bouncer) | 10 to 40 MB |
| Docker itself | 50 to 100 MB for the background service |
So a realistic 1 GB server might run a VPN, a password manager, a small website, ad blocking and a monitoring tool together, with room to spare. The way to get into trouble is to add one heavy thing.
Add swap first
Swap is disk space the system can use as slow overflow memory. It will not make a busy server fast, but it stops a brief memory spike from killing a service. On a 1 GB plan, add a 1 GB swap file before you install anything:
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Check it with free -h. You can also lower the system's eagerness to swap with echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swap.conf, so it only uses swap when it has to. Apply it with sudo sysctl --system.
Other ways to save memory
- Install a minimal server image. Never install a desktop environment on a small VPS.
- Prefer small programs written in Go, Rust or C over big Java or Node.js ones, where there is a choice.
- Run several tools in one container host rather than a separate full database for each one. Several apps can share one PostgreSQL or MariaDB.
- Use SQLite where an app offers it. It needs no separate database server.
- Remove or disable services you do not use:
systemctl list-unit-files --state=enabledshows what starts on boot.
New to running a server? Do the basics first: getting started with a new VPS, securing it and setting up SSH keys.
1. A personal VPN
What it is. A private tunnel from your phone or laptop to your own server, so your traffic leaves from the server's address. It protects you on public Wi-Fi in cafes, hotels and airports, and it lets you appear to be in the server's country.
Why it suits 1 GB. WireGuard runs inside the Linux kernel and uses almost no memory. A 512 MB plan would be enough. One server can handle all your devices and your family's.
How to set it up. Follow how to set up a VPN on a VPS. It takes about fifteen minutes. Create one key pair per device, add each as a peer on the server, and import a config file or scan a QR code on the device.
Watch out for. All the traffic you send through it counts against the plan's monthly bandwidth, so heavy streaming can use a lot. A VPN on a VPS hides your traffic from the local network, but the address belongs to your hosting provider, so it is not anonymous. Read the provider's terms for what is allowed. The location you pick decides how the internet sees you:
Locations with a 1 GB plan in stock right now
See also which RackNerd VPS suits a VPN and why a VPS beats a VPN service.
2. A mesh VPN exit node (Tailscale or Headscale)
What it is. A mesh VPN links all your devices into one private network, with no ports to open on your home router. Add a VPS to it and you can send your traffic out through the VPS (an "exit node"), or reach your devices from anywhere using stable private addresses.
Why it suits 1 GB. The Tailscale client is a small background program, typically well under 100 MB. If you would rather not depend on Tailscale's hosted coordination service, Headscale is a free, self-hosted replacement for it and is also light.
How to set it up with Tailscale. Install the client following Tailscale's instructions for your distribution, then allow forwarding and advertise the server as an exit node:
echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
sudo tailscale up --advertise-exit-node
Then approve the exit node in your Tailscale admin page and pick it on a device. Compared with plain WireGuard, setup is simpler once you have several devices, and the devices can reach each other directly. The trade-off is that it relies on Tailscale's service (or on you running Headscale).
3. Your own password manager (Vaultwarden)
What it is. Vaultwarden is a small server that works with the Bitwarden apps and browser extensions. You keep all your passwords, notes and two-factor codes in a vault that you host, synced to every device.
Why it suits 1 GB. It is written in Rust and uses tens of megabytes. It stores its data in a single folder, which makes it easy to back up.
How to set it up. It is usually run as one Docker container (see installing Docker), kept private on the server and published through a web server with HTTPS:
sudo docker run -d --name vaultwarden --restart unless-stopped \
-v /opt/vaultwarden:/data -p 127.0.0.1:8080:80 \
vaultwarden/server:latest
The Bitwarden apps insist on HTTPS, so point a domain name at the server, put nginx in front of it (web servers on a VPS) and get a free certificate with Certbot: sudo apt install certbot python3-certbot-nginx, then sudo certbot --nginx -d vault.example.com. Create your account, then switch off public sign-ups by setting the SIGNUPS_ALLOWED=false environment variable on the container.
Watch out for. This holds your most sensitive data, so use a strong master password, turn on two-factor login, keep the server updated, and back up /opt/vaultwarden somewhere else (see off-site backups). If you do not want that responsibility, a hosted password manager is a fair choice.
4. Network-wide ad and tracker blocking
What it is. A DNS server that refuses to resolve the addresses of known ad and tracking domains. Point your devices at it and ads are blocked in apps and browsers, on every device, without installing anything on each one. Pi-hole and AdGuard Home both do this.
Why it suits 1 GB. AdGuard Home is a single Go program using roughly 40 to 100 MB. Pi-hole is a little heavier but also fine.
How to do it safely. Do not leave a DNS server open to the whole internet. Open resolvers get abused in attack traffic and can get your server suspended. Instead, bind it to your VPN's private address only, so it answers just your own devices. If you set up the WireGuard VPN above (server address 10.8.0.1), set DNS = 10.8.0.1 in each device's config, and in AdGuard Home listen only on 10.8.0.1. Your phone then gets ad blocking on mobile data and public Wi-Fi as long as the VPN is on.
Watch out for. On Ubuntu, the built-in resolver already uses port 53. Set DNSStubListener=no in /etc/systemd/resolved.conf and restart systemd-resolved before you start the new DNS server. Blocklists occasionally break a site or app, so keep a way to allow a domain quickly.
5. An SSH proxy and jump host
What it is. You do not have to install anything to turn a VPS into a proxy. SSH can carry your browser traffic, forward a port, or hop through the server to reach something else.
Why it suits 1 GB. There is nothing extra to run. OpenSSH is already there.
- A quick SOCKS proxy:
ssh -D 1080 -N user@your_server_ip, then set your browser or an app to use a SOCKS5 proxy at127.0.0.1port 1080. All of its traffic leaves from the server. It is handy on a network that blocks things, or to test a site from another country. - A port forward:
ssh -L 8384:127.0.0.1:8384 user@your_server_iplets you open a service that only listens on the server (for example an admin page) athttp://127.0.0.1:8384on your own computer, without exposing it to the internet. - A jump host:
ssh -J user@your_server_ip [email protected]reaches a machine behind the server. It is also a fixed, known address you can allow through a firewall on another system.
Watch out for. A proxy through SSH is not a full VPN: only the apps you point at it use it. Keep your SSH setup secure: use keys and install Fail2ban.
6. A website or blog
What it is. The classic use. A portfolio, a blog, a project page, a small business site.
Why it suits 1 GB. A static site (plain HTML files) is the best case: nginx serves it using a few megabytes and can handle far more visitors than a small site will ever get. Build it on your own computer with a static site generator such as Hugo or Jekyll, then copy the output to the server:
rsync -avz public/ user@your_server_ip:/var/www/html/
Add a free HTTPS certificate with Certbot and you are done. See web servers on a VPS.
What about WordPress? It works on 1 GB for a small site, with some care. Use PHP-FPM with the process manager set to ondemand and a low pm.max_children (3 or 4), keep MariaDB's innodb_buffer_pool_size modest (around 128 MB), and add a page-caching plugin so most visitors are served a stored page without running PHP at all. Without caching, a burst of visitors can use up the memory. Setup steps are in how to install WordPress on a VPS. If you do not want to manage a server, shared hosting is easier.
7. An internet radio station
What it is. Your own streaming station: a playlist, a live show, a podcast feed or a mix that anyone can tune in to in a browser or a radio app.
Why it suits 1 GB. Icecast, the standard streaming server, uses a few megabytes. Your computer (or a small automation program on the server) sends the audio to it, and it relays that to listeners.
How to set it up. sudo apt install icecast2, set the source and admin passwords in /etc/icecast2/icecast.xml, and send audio to it from a source program on your computer. Each listener is a separate stream, so the limit is bandwidth, not memory. Work it out before you launch: a 128 kbit/s stream is about 58 MB per listener per hour, so ten listeners tuned in around the clock use roughly 415 GB a month.
Watch out for. If you play music you do not own, you may need licensing, depending on where you are and who listens. Original music, podcasts, talk shows and music with a suitable licence are safe. Check the provider's terms too.
8. Uptime monitoring and alerts
What it is. A tool that checks your websites, servers and services every minute and sends you a message when something stops answering. Uptime Kuma is a popular free one with a clean dashboard, and it can alert you by email, Telegram, Discord and many other ways. It can also publish a public status page.
Why it suits 1 GB. It uses roughly 100 to 200 MB and stores its data in a small database.
How to set it up.
sudo docker run -d --name uptime-kuma --restart unless-stopped \
-v uptime-kuma:/app/data -p 127.0.0.1:3001:3001 \
louislam/uptime-kuma
Reach the dashboard through an SSH tunnel (ssh -L 3001:127.0.0.1:3001 user@your_server_ip, then open http://127.0.0.1:3001), or put nginx and HTTPS in front of it.
Watch out for. A monitor that runs on the same server as the thing it watches tells you nothing when that server goes down, because the monitor goes down with it. Run it on a different server, ideally at a different provider or in a different location, from what you want to watch. A cheap 1 GB VPS is a good place for that.
9. Private Git hosting
What it is. A small, self-hosted GitHub: private repositories, issues, pull requests and a web interface. Forgejo and Gitea are the usual choices, and they are single Go programs.
Why it suits 1 GB. With SQLite as the database, they use around 80 to 200 MB for a personal setup. GitLab, by contrast, needs several gigabytes (see what does not fit).
How to set it up. Download the single program, create a dedicated user, choose SQLite as the database in the first-run page, and run it as a systemd service, or use the project's container image. Put it behind nginx with HTTPS.
Watch out for. Its built-in SSH server needs a port. Your own SSH already uses 22, so use a different port (such as 2222) for Git, or let Git go over HTTPS. Back up the data folder and the database file regularly.
10. An RSS reader
What it is. A personal news reader that fetches the feeds of the sites and blogs you follow, so you read them in one place, with no algorithm, and sync between your phone and computer. Miniflux (Go plus PostgreSQL) and FreshRSS (PHP) are two good ones.
Why it suits 1 GB. Miniflux with its database uses roughly 80 to 180 MB in total, and FreshRSS is similar with SQLite. Reading feeds is not demanding.
How to set it up. Install the app from your distribution's or the project's package, create its database, and put it behind nginx with HTTPS. Many phone apps connect to either one.
Watch out for. Feeds can pile up if you follow hundreds. Set it to delete old read items, and use the database's own tools to keep it tidy.
11. An always-on file sync node (Syncthing)
What it is. Syncthing syncs folders directly between your devices, with no company in the middle. Your laptop and phone are rarely on at the same time. Put a VPS in the loop and it is always on, so changes made on one device reach the others as soon as they connect. It also keeps an extra copy of your files.
Why it suits 1 GB. Idle memory is roughly 50 to 150 MB and grows with the number of files it tracks.
How to set it up.
sudo apt install syncthing
sudo systemctl enable --now syncthing@youruser
Its admin page only listens on the server itself, so open it with an SSH tunnel: ssh -L 8384:127.0.0.1:8384 user@your_server_ip, then visit http://127.0.0.1:8384. Add your devices and share folders. For files you do not want the server to read, Syncthing can keep them encrypted on the server.
Watch out for. Syncing is not backup: if you delete a file on one device, it is deleted on the others (turn on file versioning to keep old copies). A big photo library needs a plan with plenty of disk.
12. Off-site backups
What it is. A copy of your important files kept somewhere that is not your own computer or home. A VPS is a fine target: it only needs SSH and free disk space.
Why it suits 1 GB. Backing up barely touches memory. The server just stores files. Disk size is what to look for, so for this use pick the 1 GB plan with the most storage:
1 GB plans with the most disk
- Storage VPS Special - 100GB Storage1 CPU · 1 GB RAM · 100 GB disk · 10 TB bandwidth · Los Angeles, Dallas, Chicago$35.00/yrabout $2.92/moView at RackNerd
- KVM-1GB2 CPU · 1 GB RAM · 50 GB disk · 1 TB bandwidth · Los Angeles, Dallas, Chicago$215.88/yrabout $17.99/moView at RackNerd
- 1 GB KVM VPS Special1 CPU · 1 GB RAM · 20 GB disk · 3 TB bandwidth · New York, Los Angeles, Chicago$21.99/yrabout $1.83/moView at RackNerd
- Ryzen-1GB (Linux)1 CPU · 1 GB RAM · 15 GB disk · 1 TB bandwidth · New York, Chicago, Seattle$194.29/yrabout $16.19/moView at RackNerd
In stock when this page loaded. See every plan
How to set it up. Use a backup tool that encrypts on your own machine, so the server only ever holds scrambled data. Restic is a good one: sudo apt install restic on your computer, then:
restic -r sftp:user@your_server_ip:/backups init
restic -r sftp:user@your_server_ip:/backups backup ~/Documents ~/Pictures
restic -r sftp:user@your_server_ip:/backups snapshots
It stores each backup as a snapshot, de-duplicates data, and only uploads what changed, so later backups are quick. Borg is a similar tool. Automate it with a cron job or a systemd timer.
Watch out for. Test a restore before you need one. Keep your encryption password somewhere other than the computer you are backing up. And keep in mind that a VPS is not a backup of itself: if you store your only copy of something on the server, it is not backed up. See also rsync and other tools.
13. Bots and scheduled jobs
What it is. Small programs that need to run all the time or on a schedule: a Discord or Telegram bot, a script that checks a price and messages you, a webhook receiver, a nightly report, a feed that posts to social media.
Why it suits 1 GB. A small Python or Node.js program typically needs 30 to 100 MB, so you can run several. This is one of the best reasons to own a cheap VPS: your laptop does not need to stay on.
How to set it up. Run it as a systemd service so it starts on boot and restarts if it crashes. Create /etc/systemd/system/mybot.service:
[Unit]
Description=My bot
After=network-online.target
[Service]
User=bot
WorkingDirectory=/opt/mybot
ExecStart=/usr/bin/python3 bot.py
Restart=always
[Install]
WantedBy=multi-user.target
Then sudo systemctl enable --now mybot and read its output with journalctl -u mybot -f. For jobs that run on a timer, add a line with crontab -e, such as 0 6 * * * /opt/scripts/report.sh for six every morning.
Watch out for. Run each bot as its own unprivileged user, never as root, and keep tokens and passwords in a file only that user can read. For a quick test you can use tmux instead of a service.
14. An IRC bouncer
What it is. A bouncer stays connected to IRC (or similar chat networks) for you around the clock and keeps a log. When you connect from your phone or laptop, it replays what you missed. It also gives you one steady address instead of your changing home IP. ZNC is the classic one.
Why it suits 1 GB. ZNC uses roughly 10 to 40 MB.
How to set it up. sudo apt install znc, run znc --makeconf as a normal user to answer the setup questions, then start it and point your chat client at the server's address and the port you chose. Enable TLS in the setup so your login is encrypted.
Watch out for. Some networks do not welcome connections from certain hosting addresses, so check the network's rules. Keep the web admin and the connection port protected.
15. Small game servers
What it is. A server your friends can join, running when your computer is off.
What fits. Games with light servers work on 1 GB for a few players: a Terraria server for a handful of friends typically needs a few hundred megabytes, and a small Factorio server in the early game can fit, though it grows as the factory does. Older or simple games and text-based games (MUDs) are also fine.
What does not. Minecraft is the one everyone asks about. A vanilla Java server for one or two players can be squeezed in with swap, but it will lag when the world loads, and any mods or plugins push it past 1 GB. It really wants 2 GB, and more for a group. See VPS plans for a game server. Also check each game's own server requirements before you buy.
Watch out for. A game feels better the closer the server is to the players, so choose your location carefully. CPU speed matters more than the core count for many game servers, and on a cheap plan the core is shared.
What does not fit in 1 GB
- GitLab. It recommends at least 4 GB. Use Forgejo or Gitea instead (idea 9).
- Jitsi Meet and other video conferencing. They need more CPU, more RAM and a lot of bandwidth.
- A full mail server. Postfix and Dovecot are small, but spam filtering (rspamd, SpamAssassin) and antivirus (ClamAV alone can use 1 GB or more) are not. Mail also needs reverse DNS, good sender reputation, and a provider that allows outgoing mail on port 25. For most people, hosted email is the better choice.
- Busy WordPress or WooCommerce shops, Magento, and large Nextcloud installs. They can run, but they will be slow with more than a few users.
- Java apps and search engines such as Jenkins with real builds, Elasticsearch, and modded Minecraft.
- A big Docker Compose stack with several databases. Each database wants its own memory.
If your wish list is heavy on these, see self-hosted apps and what they need and which VPS suits self-hosting.
When to step up
You are ready for more memory when your server regularly uses all its swap, services are killed with "out of memory" messages (dmesg | grep -i oom shows them), or you find yourself deleting one useful thing to make room for another. Moving up costs only a few dollars a year more, and a 2 GB plan roughly doubles what you can run at once. A new server is simple to fill: reinstall, restore your configuration, and carry on.
Need more room? Cheapest 2 GB plans in stock
- 2 GB KVM VPS Special2 CPU · 2 GB RAM · 35 GB disk · 5 TB bandwidth · New York, Los Angeles, Chicago$35.99/yrabout $3.00/moView at RackNerd
- Ryzen-2GB (Linux)2 CPU · 2 GB RAM · 20 GB disk · 2 TB bandwidth · New York, Chicago, Seattle$222.37/yrabout $18.53/moView at RackNerd
- KVM-2GB3 CPU · 2 GB RAM · 75 GB disk · 2 TB bandwidth · Los Angeles, Dallas, Chicago$247.08/yrabout $20.59/moView at RackNerd
In stock when this page loaded. See every plan
Want the lowest price whatever the size? See the cheapest VPS plans right now, or watch the sales calendar for the best deals of the year.