Wiki › Project

Multi-container Todo API

Project · challenge · 2025

Multi-container Todo API is a to-do API in Node.js and Express backed by MongoDB, with the API and database run as two containers through Docker Compose. It solves roadmap.sh's multi-container challenge.

Running it

A Makefile wraps the whole workflow: start the stack, check its health, list to-dos, and create a sample one with curl. The README covers a common pitfall. If MongoDB rejects the password, its data volume was probably created with different credentials, and make compose-reset rebuilds it, deleting the data.

See also

In the knowledge graph

Multi-container Todo API and the 11 things it is linked to. Open any dot for its page, or explore it in the full graph.

When
2023202420252026
Oct 2025 · 3 commits

As data

Everything on this page is read from triples in the knowledge graph. These are the 23 it states about Multi-container Todo API, and 2 more its ontology implies; the console runs SPARQL over the whole graph, here in your browser.

Download
@prefix id: <https://ask.chaipat.cc/id/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix cj: <https://ask.chaipat.cc/ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

id:MultiContainer
    a cj:Project ;
    rdfs:label "Multi-container Todo API" ;
    cj:description "Node.js, Express and MongoDB Todo API run with Docker Compose." ;
    cj:context id:OpenSource ;
    cj:repository "https://github.com/AppleBoiy/multi-container"^^xsd:anyURI ;
    cj:firstCommit "2025-10-12"^^xsd:date ;
    cj:lastCommit "2025-10-12"^^xsd:date ;
    cj:commitCount 3 ;
    cj:kind "challenge" ;
    cj:theme id:ThemeDevOps , id:ThemeWeb ;
    cj:uses id:NodeJS ,
            id:Express ,
            id:MongoDB ,
            id:Docker ,
            id:Make ;
    cj:tier 3 ;
    cj:integrates id:RoadmapSh ;
    cj:partOf id:RoadmapShSeries ;
    cj:mentions id:Dockerized ;
    cj:article "https://ask.chaipat.cc/wiki/MultiContainer"^^xsd:anyURI ;
    cj:activeIn id:Y2025 ;
    cj:activity _:b107 .