Skip to content

Repository files navigation

Stacktastic

My personal portfolio site built with modern web technologies.

About

A portfolio and project showcase built with SvelteKit, TypeScript, and Tailwind CSS. Containerized with Docker and deployed on Hetzner with Traefik. Features a secure contact form with CAPTCHA protection and rate limiting.

Note: Requires a CAPTCHA server (cap.js) for the contact form functionality. Rate limiting uses in-memory storage with automatic cleanup.

Setup

Environment Variables

Copy .env.example to .env and add your configuration:

# Required
CAPTCHA_SECRET=your-cap-server-secret  # From your cap.js server
MAIL_HOST=smtp.your-provider.com
MAIL_USER=your-email@domain.com
MAIL_PASS=your-email-password
CONTACT_RECEIVER=contact@yourdomain.com

# Security configuration  
CSRF_SECRET=your-csrf-secret

Development

Prerequisites

Installation

git clone https://github.com/ingoCollatz/stacktastic-main.git
cd stacktastic-main
npm install

Development Server

npm run dev

Visit http://localhost:5173

Testing

npm test                    # Run all tests
npm test security          # Security tests
npm test rate-limiting     # Rate limiting tests

Building

npm run build

Docker

# Development
docker-compose -f docker-compose.main.yml up

# Production
docker build -t stacktastic .
docker run -p 3000:3000 stacktastic

Note: The docker-compose files are designed for use with a Traefik reverse proxy setup and support automatic HTTPS and domain routing.

Tech Stack

  • SvelteKit - Full-stack framework
  • TypeScript - Type safety
  • Tailwind CSS - Styling
  • cap.js - CAPTCHA server
  • Docker - Containerization
  • Traefik - Reverse proxy

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages