Guide to setup Parse-Server with PostgreSQL on Docker

Hi guys, I’m Martin, I’ve been playing with FileMaker for 10 years (a low-code framework to develop apps for SMEs), I decided to jump that boat and after some time reading about what technologies to use, I decided to use Parse + Quasar for the rest of my life (Supabase + Quasar is my second option).

Can someone explain like If I were 10 years old how to setup parse using postgres on docker?
I am using macOS and I have installed Docker Desktop.
I’ve been playing with the docs, guides and 6 years old youtube videos, still no clear to me how to do it, I following the Guide I was be able to using Parse-Server on local using mongo.
I still not understand why the NoSQL databases are so popular, every situation I think about involves relationships, so will use PostgresSQL for my projects.
I did install the Parse-Dashboard using npm and I am able to launch it using the configuration file.

I really don’t want to spend weeks trying to make this thing work, because I don’t think is something that I will be working on it all the time, I just need the CRUD and Auth stuff, so I can start to play/learn the frontend (Quasar).

$50 contribution to Parse Open Collective / GitHub Sponsor if I am finally be able to make this thing work.

Cheers!
Martin R.

Feel free to look at my repo to see how to setup Parse with Postgres, Parse Dashboard, all with docker:

If you clone, you just need to docker-compose up to run. The yml file is: parse-hipaa/docker-compose.yml at parse-swift · netreconlab/parse-hipaa · GitHub

More details:

Hi Baker! I already been there :sweat_smile:, I saw lot of stuff there, mongo, swift, careKit?, etc…

I don’t really want to have ‘stuff that I don’t use’ because it makes hard to me to ‘decode’ that, when/if I decided to dig and try to understand the files inside the repo.
I also don’t have the knowledge to fork and ‘clean’ your repo and left only the needed stuff…

I also don’t want to deploy to Heroku, etc… maybe in the future if some customer decide not to host their soft locally, I will deploy the Apps in AWS probably, but that will be another fight for another time…

I hired some freelancer to create a docker-composer file, I haven’t tested it too much yet.
I left here the contents of the docker-compose.yml if for some reason help someone.
I really did not understood the docker thing and the repos, still not sure if I get it… :sweat_smile:

The netreconlab docker-compose.yml file looks more ‘polished’, but for me hard to understand whats going on there, and I don’t have the skills to create a new version with my requirements from that file.

I guess I will be using my version for a while until I decided to deploy or improve it, I will focus on the frontend for now.

I am gonna support this thing with $10/month :moneybag: and see if I can stick to Parse until I retire… :skull:

if is something crappy about this docker compose, feel free to comment…

version: '3'
services:
  postgres:
    image: postgis/postgis
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=postgres
      - POSTGRES_MULTIPLE_EXTENSIONS=postgis,hstore,postgis_topology,postgis_raster,pgrouting
    ports:
      - "5432:5432"
    volumes:
      - postgis-data:/var/lib/postgresql

  parse:
    image: parseplatform/parse-server
    environment:
      - PARSE_SERVER_APPLICATION_ID=parse
      - [email protected]!
      - PARSE_SERVER_DATABASE_URI=postgres://postgres:[email protected]/postgres
      - PARSE_SERVER_MOUNT_PATH=/parse
    ports:
      - '1337:1337'
    entrypoint: ["/bin/sh", "-c", "sleep 5;  node ./bin/parse-server"] #sleep few seconds for postgres to come up
    depends_on:
      - postgres

  parse-dashboard:
    image: parseplatform/parse-dashboard
    ports:
      - '4040:4040'
    environment:
#      - PARSE_DASHBOARD_ALLOW_INSECURE_HTTP=true
      - PARSE_DASHBOARD_TRUST_PROXY=1
      - PARSE_DASHBOARD_COOKIE_SESSION_SECRET=AB8849B6-D725-4A75-AA73-AB7103F0363F
      - PARSE_DASHBOARD_SERVER_URL=http://localhost:1337/parse
      - [email protected]!
      - PARSE_DASHBOARD_APP_ID=parse
      - PARSE_DASHBOARD_APP_NAME=MyParseApp
      - PARSE_DASHBOARD_USER_ID=admin
      - PARSE_DASHBOARD_USER_PASSWORD=password
      - MOUNT_PATH=/dashboard/
    command: parse-dashboard --dev
    depends_on:
      - parse
volumes:
  postgis-data: