An open API service indexing awesome lists of open source software.

https://github.com/jokermedoo/townmedia

This repository was created by Flatlogic Platform: https://flatlogic.com/generator | Application page: https://townmedia.flatlogic.app
https://github.com/jokermedoo/townmedia

docker flatlogic js low-code nginx nodejs postgresql react tailwind ts

Last synced: 6 days ago
JSON representation

This repository was created by Flatlogic Platform: https://flatlogic.com/generator | Application page: https://townmedia.flatlogic.app

Awesome Lists containing this project

README

        

# Project Setup & Local Development

## Tech Stack

| Layer | Technology |
| --------- | -------------------- |
| Front‑end | **React JS** |
| Back‑end | **Node JS** |
| Database | **PostgreSQL** |
| Container | **Docker & Compose** |

---

## 1 — Run Locally (without Docker)

### 1.1 Backend

```bash
cd backend
# install dependencies
yarn install
```

\#### Configure PostgreSQL

macOS

```bash
brew install postgres
```

Ubuntu

```bash
sudo apt update
sudo apt install postgresql postgresql-contrib
```

\##### Create DB & Admin User

```bash
# log in as default super‑user
psql postgres -U postgres

-- inside psql
CREATE ROLE admin WITH LOGIN PASSWORD 'admin_pass';
ALTER ROLE admin CREATEDB;
\q

# log in as the new user
psql postgres -U admin

-- inside psql
CREATE DATABASE db_;
GRANT ALL PRIVILEGES ON DATABASE db_ TO admin;
\q
```

\##### Migrate & Start

```bash
yarn db:create # generate schema
yarn start # production build
```

### 1.2 Frontend

```bash
cd frontend
yarn install
yarn start
```

> Front‑end dev‑server runs at **[http://localhost:3000](http://localhost:3000)** by default.

---

## 2 — Run with Docker

```bash
cd docker
chmod +x wait-for-it.sh start-backend.sh
```

| Scenario | Command |
| ------------------------- | ---------------------------------- |
| **Fresh DB volume** | `rm -rf data && docker-compose up` |
| **Reuse existing volume** | `docker-compose up` |

Then open **[http://localhost:3000](http://localhost:3000)**.

Stop services with **Ctrl + C** or:

```bash
docker-compose down
```

> **Heads‑up:** Files inside the `docker/` folder and the root `Dockerfile` are used for cloud deployment. Changing them may break the pipeline.

---

## Folder Structure (top‑level)

```text
├── backend/ # Node JS API & services
├── frontend/ # React application
├── docker/ # Compose files & helper scripts
└── README.md # (this file)
```

---

## Troubleshooting

### “connection refused”

1. Port closed or backlog full.
2. Firewall (local or network).
3. Service not running.

Verify with:

```bash
telnet
```

### macOS

```bash
sudo service ssh status
```

### Ubuntu – IP conflict check

```bash
arp-scan -I eth0 -l | grep
arping
```

### Reset PostgreSQL schema (macOS example)

```sql
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO public;
```

---

## Cheat‑sheet

| Task | Command |
| ----------------------- | ---------------------------------- |
| **Create DB schema** | `yarn db:create` |
| **Start backend** | `yarn start` |
| **Start dev front‑end** | `cd frontend && yarn start` |
| **Compose up (fresh)** | `rm -rf data && docker-compose up` |
| **Compose down** | `docker-compose down` |


---

Made with ❤️ by Flatlogic Platform.