* Initial plan * Initial setup: fix build issues and document current state Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com> * Implement new start page with static content explaining LUMINA and Nostr Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com> * Remove call-to-action buttons that require user login Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com> * Fix punctuation in LUMINA description for clarity * Bump version to 0.1.28 in README, package.json, and package-lock.json --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com> Co-authored-by: highperfocused <highperfocused@pm.me>
3.5 KiB
LUMINA.rocks 📸
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
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:
-
Edit the
.envfile in theluminadirectory:NEXT_PUBLIC_ENABLE_IMGPROXY=true NEXT_PUBLIC_IMGPROXY_URL=https://your-imgproxy-instance.com/ -
Make sure your imgproxy instance is properly configured and accessible.
-
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:
-
Edit the
.envfile in theluminadirectory:NEXT_PUBLIC_UMAMI_SCRIPT_URL=your-umami-script-url NEXT_PUBLIC_UMAMI_WEBSITE_ID=your-website-id -
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:
- Geyser Fund: Donate at geyser.fund/project/lumina
- Lightning Address: Send sats directly to
lumina@geyser.fund - Code Contributions: PRs are welcome!
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.