Skip to content
View rmady's full-sized avatar
😁
Being free...
😁
Being free...

Block or report rmady

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
rmady/README.md

rmady.com.br

Personal website of Rodrigo Mady β€” portfolio, skills, talks and contact.

Built with Express.js, Pug templates and i18next for multilingual support (English and Portuguese).

Tech Stack

  • Runtime: Node.js
  • Framework: Express 4
  • Template Engine: Pug 3
  • i18n: i18next (with browser language detection)
  • Database: MySQL / Sequelize (optional)
  • Testing: Mocha + NYC (coverage) + Supertest

Project Structure

rmady/
β”œβ”€β”€ index.js              # Entry point β€” Express server setup
β”œβ”€β”€ langoptions.js        # i18next language detection config
β”œβ”€β”€ ecosystem.config.js   # PM2 process config (production)
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ routes.js         # Route definitions
β”‚   └── controllers/
β”‚       └── HomeController.js
β”œβ”€β”€ locales/
β”‚   β”œβ”€β”€ en.json           # English translations
β”‚   └── pt.json           # Portuguese translations
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ views/            # Pug templates
β”‚   β”œβ”€β”€ css/
β”‚   β”œβ”€β”€ js/
β”‚   β”œβ”€β”€ images/
β”‚   └── fonts/
└── .github/
    └── workflows/
        └── deploy.yml    # GitHub Actions auto-deploy

Routes

Path Page
/ Home
/skills Skills
/portfolio Portfolio
/talks Talks
/trema Trema
/contact Contact

Getting Started

Prerequisites

  • Node.js 18+ (managed via NVM)

Install & Run

# Install dependencies
npm install

# Start development server (with auto-reload via nodemon)
npm start

The server runs at http://localhost:3002.

Running Tests

npm test

Production

The site is deployed to a DigitalOcean Droplet running Debian + Nginx + PM2.

Manual Deploy

ssh deploy@YOUR_DROPLET_IP
cd /var/www/sites/rmady
git pull origin main
npm ci --production
pm2 restart rmady

Automatic Deploy

Pushes to main trigger a GitHub Actions workflow that deploys via SSH automatically. Requires two repository secrets:

  • DROPLET_IP β€” Droplet IP address
  • SSH_PRIVATE_KEY β€” SSH private key for the deploy user

Language Detection

The site auto-detects the user's language from (in order):

  1. ?lang= query parameter
  2. i18next cookie
  3. Accept-Language header

Supported languages: English (en) and Portuguese (pt). Falls back to English.

License

GPL-3.0 β€” see LICENSE.

Pinned Loading

  1. trema-tech/moodle-theme_trema trema-tech/moodle-theme_trema Public

    Theme trema, a Moodle LMS plugin.

    PHP 40 21

  2. rmady rmady Public

    Personal website with NodeJS.

    Pug