About • Features • Tech Stack • Getting Started • Usage • Deployment • Contributing • License • Contact
Serium is designed to solve the common frustrations of inventory management. Whether you're a small business owner, a hobbyist with a growing collection, or part of a team needing to track assets, Serium provides a clean, powerful, and collaborative platform. Say goodbye to clunky spreadsheets and outdated software – Serium brings a modern web experience to managing your items effectively.
Our goal is to provide an intuitive interface packed with smart features that save you time and give you clear insights into your inventory.
- 🗂️ Customizable Tagging: Effortlessly organize items with flexible, auto-suggested tags for granular categorization.
- 🔍 Intelligent Search & Filtering: Quickly locate items using powerful search capabilities and dynamic filters.
- 📱 Modern & Responsive UI: Enjoy a consistent and intuitive experience across desktop, tablet, and mobile devices.
- 📜 Audit Trail / Activity Log: Keep track of all changes made to your inventory for accountability and history.
- 🔄 Import/Export Data: Easily migrate your existing inventory data into Serium or export your data in common formats (e.g., CSV, JSON).
- 🎨 Themeable Interface: Light and Dark mode support for comfortable viewing.
Serium is built with a modern, robust, and scalable technology stack:
- Frontend: React with Next.js (App Router)
- Backend: Next.js API Routes
- Database ORM: Prisma
- Styling: Tailwind CSS with shadcn/ui components
- Authentication: [Specify your auth library, e.g., NextAuth.js, Clerk, Supabase Auth, Better Auth]
- State Management: [Specify if using Zustand, Jotai, Redux, or React Context heavily]
- Forms: React Hook Form with Zod for validation
- UI Components: Custom components built with shadcn/ui primitives.
- Tag Input: Emblor TagInput (as mentioned in your credits)
Follow these instructions to get a copy of Serium up and running on your local machine for development and testing purposes.
- Node.js (v18.x or later recommended)
- npm or yarn
- Git
- A database supported by Prisma (e.g., PostgreSQL, MySQL, SQLite). PostgreSQL is often recommended for development and production.
-
Clone the repository:
git clone https://github.com/kcybe/serium.git cd serium -
Install dependencies:
npm install # or yarn install -
Set up environment variables:
-
Copy the example environment file:
cp .env.example .env
-
Open the
.envfile and fill in your specific credentials and configurations:DATABASE_URL="your_postgresql_or_mysql_or_sqlite_connection_string" # Example: postgresql://user:password@host:port/database or file:./prod.db # Authentication BETTER_AUTH_URL="http://localhost:3000" # Or your production URL BETTER_AUTH_SECRET="generate_a_strong_random_secret_string" # Run `openssl rand -hex 32` in your terminal
Important:
BETTER_AUTH_SECRETis crucial for security. Generate a strong, unique secret.
-
-
Set up the database with Prisma:
- Apply database migrations:
This will create your database schema based on
npx prisma migrate dev
prisma/schema.prisma. If it's the first time, it might also prompt you to create the database if it doesn't exist.
- Apply database migrations:
-
Generate Prisma Client: Although often included in
postinstallorbuildscripts, you can run it manually:npx prisma generate
-
Run the development server:
npm run dev # or yarn devThe application should now be running at
http://localhost:3000.
Once the application is running:
- Navigate to
http://localhost:3000in your browser. - Sign up for a new account or sign in if you have existing credentials.
- Start creating inventories, adding items, and organizing with tags.
- Explore the dashboard, search functionality, and activity logs.
Serium is designed to be easily deployable on various platforms.
Recommended for Next.js applications. Connect your GitHub repository for seamless CI/CD. Ensure all environment variables are set in your Vercel project settings.
Serium is easily deployable with Docker. Here's a full guide to run it in a containerized environment.
-
Build the Docker image:
docker build \ --build-arg DATABASE_URL="your_database_url_here" \ -t serium-webapp .
Replace
your_database_url_herewith your actual PostgreSQL connection string, for example:postgresql://user:password@host:port/database?sslmode=require -
Run the Docker container:
docker run -p 3000:3000 \ -e DATABASE_URL="your_database_url_here" \ -e BETTER_AUTH_URL="http://your-server-ip:3000" \ -e BETTER_AUTH_SECRET="your_super_secret" \ serium-webapp
BETTER_AUTH_URLshould point to the public IP or domain of the machine running the container.BETTER_AUTH_SECRETmust match the secret used in your auth configuration.
-
Access the app:
Open your browser and go to:
http://localhost:3000Or replace
localhostwith your server IP if running remotely:http://your-server-ip:3000
Ensure your .dockerignore file includes the following to keep your Docker image lean and secure:
node_modules
.next
.env
.DS_Store
.git
*.log
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your Changes (
git commit -m 'Add some AmazingFeature'). - Push to the Branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Please read CONTRIBUTING.md (create this file) for details on our code of conduct, and the process for submitting pull requests to us.
Distributed under the MIT License. See LICENSE file for more information.
Serium wouldn't be possible without these incredible open-source projects and tools:
- React
- Next.js
- Prisma
- Tailwind CSS
- shadcn/ui
- Lucide React (for icons)
- React Hook Form & Zod
- Emblor TagInput
- Next-Themes (if used)
- ...and many other fantastic libraries!
Noam Yu / Project Maintainer - @kcybe - [email protected]
Project Link: https://github.com/kcybe/serium
Built with ❤️ by noamyu.dev