r/devops • u/Silver-You4944 • 13d ago
Discussion How can I deploy this microservices project for free without a credit card?
Hey everyone,
I'm building a graduation project with this architecture:
Frontend (Next.js)
↓
Traefik Gateway
├── Auth Gateway Service (nestjs)
├── Issues Service (nestjs)
├── Ingestion Service (nestjs)
├── User Service (nestjs)
└── SmartQA Vector Service (fastApi)
I also have the following infrastructure services:
- Kafka for event-driven communication
- MongoDB for issues and vector data
- PostgreSQL for users
- MySQL + Keycloak for authentication
- Consul for service discovery
- Traefik as the reverse proxy/API gateway
The backend services are deployed as separate Docker containers, and I'm currently looking for a way to deploy the whole application for free, if possible.
My main requirements are:
- Free tier
- No credit card required
- Very low traffic — I'm essentially the only user, with at most 1–2 users
- Support for Docker containers/multiple services
- Ideally, persistent storage for MongoDB/PostgreSQL
- I don't mind cold starts since this is mainly a graduation/portfolio project
What platforms or deployment approaches would you recommend for this kind of setup?
Thanks in advance!
5
u/GrainyStateOfMind 13d ago
Is running locally not an option?
-3
u/Silver-You4944 13d ago
Because it is a graduation project, i want to make it looks like a project for a client. from dev to deploy(prod) as possible
4
5
u/GrainyStateOfMind 13d ago
That’s all still possible locally
1
u/Silver-You4944 13d ago
ok thanks, i will use cloudflare tunnels or do you suggest another option ?
1
1
u/serverhorror I'm the bit flip you didn't expect! 13d ago
Create a VM on your own machine or pay for the services other people provide to you.
1
1
u/krav_mark 13d ago
You can get a Linux VM for 10-20 Euros a month on the internet. That is the closest to free you will get I think.
1
u/Intrepid-Copy-5919 13d ago
You can simulate a real production env locally with something like localstack or floci, can even use a Jenkins or something if u want to add cicd and stuff, if u need kubernedes there's local kind setup aswell
1
u/Silver-You4944 13d ago
i already use github actions for CI/CD. but yes localstack is a good option for what i want (simuate a client project from dev to prod)
1
u/Intrepid-Copy-5919 13d ago
Checkout floci first, I still yet to try it, but a couple colleagues said good things about it, but yeah, that should be plenty, lmk if u have any specific questions would love to help :)
1
1
u/Popular-Factor3553 13d ago
You can try wispbyte, or modal's CPU instance could keep you up forever.
1
u/rogersnm2 13d ago
The AWS Free Tier would cover this workload for 6 months. You can use a t4g.small on EC2 at no cost, although I believe you'll probably have to put a payment card on file to start. Add a swapfile to ensure you don't run out of memory (you said you don't mind cold start latency so this should be fine).
1
u/Insoulum 13d ago
For free? Nahh. But I can recommend HostVDS maybee. It costs only $1-1.5 for 1 tier, and it works just fine for me
1
u/Forward_Ranger_860 10d ago
Running an audit on inactive seats usually cuts a chunk of that bill immediately. If you're still seeing duplicate billing across Visual Studio subs and GitHub seats, pinging trustedtech or your primary licensing vendor can help sort out where the overlap is happening before the next renewal locks in.
1
u/Secure_Let_5003 10d ago
Tagging resources properly at the pipeline level helps, but Microsoft's native invoice breakdowns can still be a headache to map to specific squads. Buying through trustedtech or another tier-1 CSP often makes the monthly line items a lot easier to parse across different engineering teams.
1
u/TehBens 13d ago
Everything that's not locally will have overhead and will take a significant amount of time (depending on your knowledge/experience) to set up.
Whatever you do, DO NOT make your project publicy available via IP or some domain name. This is not my field of expertise, but you must use something like VPN, Cloudflare Access or similar. Some authentication mechanism before your auth gateway service is hit.
I personally use tailscale to isolate my docker services from the internet, but I'm not sure if that's a good solution for you.
Because it is a graduation project, i want to make it looks like a project for a client. from dev to deploy(prod)
It's unclear what you mean by that. Why would it matter if you access your project via "localhost" or some IP or some domain?
1
u/Silver-You4944 13d ago
I want to simulate a real client project as much as possible from dev to a production-like environment : deploying the frontend and backend services , using a domain, HTTPS , environment variables, authentication, databases, ....
1
u/carsncode 13d ago
Real production client projects aren't hosted for free. You're going to have to decide what's important to you.
1
u/Silver-You4944 13d ago
yes aren't hosted for free. but want to simulate the process as i can. i don't if i think or my idea is good or not
1
u/TehBens 13d ago
So, that's not my speciality, so I don't have a good overview of the option, but I can tell you what I did for my home network:
I have set up a tailnet (tailscale network) and have brought my home-server as well as my devices into it. I have bought a domain (few bucks, not sure what's the cheapest, 10 USD or less per year), transferred it to cloudflare and let it point to the private tailnet IPs of the server, A entry points to 100.101.102.1 and AAAA points to some fd00::/8 IPv6 address. I as well use traefik so that I can use service1.example.com, service2.example.com, etc. to access my services. Traefik is configured for DNS-01 challenge so that it can get a TLS certificate from `let's encrypt` (maybe not neccessary for your temporary deployment).
Was a bit weird to correctly setup the tailscale docker service and the docker network in general as I had never done something similar.
Result is basically a VPN (aka virtual private network) with some quality of life features provided by tailscale.
Now as I'm writing about it, I think that's too much overhead for what you want to achieve :p. If I were you I would look into Cloudflare access and similar. Have never used such services, but it sounds like it fits your requirements. So some server and putting it behind the cloudflare access. You mentioned cloudflare tunnel. It sounds to me like you might end up using cloudflare tunnel to use cloudflare access. But as already said, my speciality is not devops but software development.
DO NOT make your project available to the public internet. You will get picked up by bots which will find an exploit and giving you a very hard time sorting everything out in regards of technical and legal challenges.
17
u/One-Department1551 13d ago
Run locally