Skip to content

lumina-rocks/lumina

Repository files navigation

LUMINA.rocks 📸

LUMINA Version

A modern, decentralized social media platform for images and pictures built on the Nostr protocol.

✨ Features

  • Image-centric social experience - Share and discover beautiful images
  • Decentralized architecture - Powered by Nostr protocol
  • User profiles - Customize your presence on the platform
  • Feeds - Global, personalized, and tag-based image discovery
  • React and engage - Like, comment, and interact with content
  • Lightning Network integration - For tipping and monetization
  • Responsive design - Optimized for mobile and desktop experiences

🚀 Getting Started

Prerequisites

  • Node.js (v18 or newer)
  • Docker (optional, for containerized deployment)

Local Development

# Clone the repository
git clone https://github.com/lumina-rocks/lumina.git
cd lumina

# Install dependencies
npm install
# or
bun install

# Start the development server
npm run dev
# or
bun dev

Your application will be available at http://localhost:3000.

🐳 Docker Deployment

Quickstart

docker run --rm -it -p 3000:3000 ghcr.io/lumina-rocks/lumina:main

Using Docker Compose

docker compose up -d

Build from Source

# Build the Docker image
docker build -t lumina .

# Run the container
docker run -p 3000:3000 lumina

⚙️ Configuration

Image Proxy (imgproxy)

LUMINA supports image proxying via imgproxy to optimize image loading, resize images on-the-fly, and enhance privacy. To enable:

  1. Edit the .env file in the lumina directory:

    NEXT_PUBLIC_ENABLE_IMGPROXY=true
    NEXT_PUBLIC_IMGPROXY_URL=https://your-imgproxy-instance.com/
    
  2. Make sure your imgproxy instance is properly configured and accessible.

  3. Restart the application to apply changes.

The imgproxy feature:

  • Resizes images to appropriate dimensions for better performance
  • Falls back to direct image URLs if the proxy fails
  • Provides faster loading times for large images
  • Can be disabled by setting NEXT_PUBLIC_ENABLE_IMGPROXY=false

Umami Analytics

Umami analytics is disabled by default. To enable:

  1. Edit the .env file in the lumina directory:

    NEXT_PUBLIC_UMAMI_SCRIPT_URL=your-umami-script-url
    NEXT_PUBLIC_UMAMI_WEBSITE_ID=your-website-id
    
  2. Rebuild and restart the container:

    docker compose up -d --build

🛠️ Tech Stack

  • Frontend: Next.js, React, TypeScript, Tailwind CSS
  • UI Components: Radix UI, Lucide icons, shadcn/ui
  • Protocols: Nostr, Lightning Network

⚡ Support LUMINA

LUMINA is an independent, community-focused project kickstarted and currently mostly developed by a single passionate developer. Your support helps keep this decentralized platform alive and growing!

How to support:

Every contribution helps build a better, more open social media landscape.

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check issues page.

🔗 Links

About

A modern, decentralized social media platform for images and pictures built on the Nostr protocol.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •  

Languages