Skip to content
This repository was archived by the owner on Aug 11, 2026. It is now read-only.

Latest commit

 

History

589 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notable Nomads Backend API

Backend API service for Notable Nomads platform.

Features

  • AI Chat Service: Real-time chat interface using Gemini Pro
  • Email Service: Contact form handling with AWS SES
  • Blog Service: Medium blog post integration
  • Health Checks: System health monitoring

Tech Stack

  • Framework: NestJS v10
  • Runtime: Node.js ≥18
  • Package Manager: Yarn v4.6.0
  • Database: PostgreSQL 16
  • Container: Docker & Docker Compose

Prerequisites

  • Node.js 18+
  • Docker & Docker Compose
  • SSH access to deployment server
  • Domain with DNS configured

Environment Variables

Copy .env.example to .env and adjust the values:

# Application
NODE_ENV=development
PORT=3000
HOST=localhost
API_PREFIX=v1

# CORS
CORS_ENABLED_DOMAINS=*.notablenomads.com
CORS_RESTRICT=false

# AWS Configuration
AWS_REGION=eu-central-1
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key

# Email Configuration
EMAIL_FROM_ADDRESS=noreply@notablenomads.com
EMAIL_TO_ADDRESS=contact@notablenomads.com

# AI Configuration
GEMINI_API_KEY=your_gemini_api_key

Managing Environment Variables

# Set or update a variable
./scripts/manage-env.sh <server-ip> --set KEY=VALUE

# Get a variable's value
./scripts/manage-env.sh <server-ip> --get KEY

# Backup current environment
./scripts/manage-env.sh <server-ip> --backup

# Restore from backup
./scripts/manage-env.sh <server-ip> --restore env_backup_file.env

Development

# Install dependencies
yarn install

# Run in development mode
yarn start:dev

# Run tests
yarn test

# Run e2e tests
yarn test:e2e

# Lint and format code
yarn lint
yarn format

Deployment

# Deploy the application
DOCKER_HUB_TOKEN=<token> ./scripts/deploy.sh <server-ip>

# SSL certificate management
./scripts/manage-ssl.sh <server-ip> --production

# Server cleanup (preserves SSL certificates)
./scripts/cleanup.sh <server-ip>

Creating a Super Admin

To create a super admin user, run:

yarn create:super-admin <email> <password>

Example:

yarn create:super-admin admin@example.com your-secure-password

Note: For security reasons, this script can only create one super admin user. Once a super admin exists, additional super admins must be created through the application by the existing super admin.

Monitoring

# Follow all logs
ssh root@<server-ip> 'docker compose logs -f'

# Follow specific service logs
ssh root@<server-ip> 'docker compose logs -f api'

API Documentation

API documentation is available at /v1/docs in non-production environments.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages