An interactive learning platform that has helped thousands of people take their first steps into the world of Linux.
If you find Linux Path helpful and want to support its development, consider buying me a coffee! Your support helps keep this project alive and enables continuous improvements to help more people learn Linux.
- ๐ง Interactive Linux Learning: Step-by-step lessons covering Linux fundamentals
- ๐ Multi-language Support: Built with internationalization (i18n) using next-intl
- ๐ Comprehensive Curriculum: Structured chapters covering everything from basics to advanced topics
- ๐ฏ Interactive Exercises: Hands-on practice with real Linux commands
- ๐ฑ Responsive Design: Beautiful, modern interface that works on all devices
- ๐ง Easy Deployment: Multiple deployment options including Docker
- ๐ JSON-Based Content: Flexible content management through JSON dictionaries
- ๐ Fast Performance: Built with Next.js for optimal loading times
Here are the exciting features coming to Linux Path:
Feature | Status |
---|---|
Lesson generator script | ๐ |
SSR | ๐ |
Dark Mode | ๐ |
New Lessons | ๐ |
View progress | ๐ |
Legend:
- ๐ In Development
- ๐ Planned
- ๐ก Research Phase
- โ Complete
Linux Path uses a sophisticated dictionary system for content management and internationalization. For detailed information, see the Dictionary Documentation.
Language | Status | Completion |
---|---|---|
๐บ๐ธ English | โ Complete | 100% (Master) |
๐ฎ๐น Italian | ๐ In Progress | ~80% |
๐ฉ๐ช German | โ Complete | 100% (๐ค AI) |
๐ซ๐ท French | โ Complete | 100% (๐ค AI) |
๐ช๐ธ Spanish | โ Complete | 100% (๐ค AI) |
๐ฎ๐ณ Hindi | โ Complete | 100% (๐ค AI) |
๐ฏ๐ต Japanese | โ Complete | 100% (๐ค AI) |
๐ต๐น Portuguese | โ Complete | 100% (๐ค AI) |
๐ท๐บ Russian | โ Complete | 100% (๐ค AI) |
๐จ๐ณ Chinese | โ Complete | 100% (๐ค AI) |
Unfortunately, I am a native Italian speaker, so I cannot guarantee the accuracy or naturalness of the translations in other languages. |
Choose one of the following:
- Node.js: 18.0+ and npm (for local development)
- Docker: Latest version (for containerized deployment)
-
Clone the repository:
git clone https://github.com/daquino94/linux-path.git cd linux-path
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser: Navigate to
http://localhost:3000
-
Clone and install (same as above steps 1-2)
-
Build the application:
npm run build
-
Start the production server:
npm start
-
Clone the repository:
git clone https://github.com/daquino94/linux-path.git cd linux-path
-
Run with Docker Compose:
docker-compose up -d
-
Build the Docker image:
docker build -t linux-path .
-
Run the container:
docker run -d \ --name linux-path \ -p 3000:3000 \ -e NODE_ENV=production \ linux-path
The project uses a sophisticated multi-stage Docker build process:
- Stage 1 (Builder): Compiles and builds the Next.js application
- Stage 2 (Runner): Creates a lean production image with only necessary files
This approach results in:
- โ Smaller final image size
- ๐ Enhanced security (no build tools in production)
- โก Faster deployment times
- ๐งน Cleaner production environment
- Frontend Framework: Next.js 15+ with App Router
- Language: TypeScript for type safety
- Styling: Tailwind CSS for responsive design
- Internationalization: next-intl for multi-language support
- Content Management: JSON-based dictionary system
- Containerization: Docker with multi-stage builds
The application can be configured using the following environment variables:
Variable | Description | Default |
---|---|---|
NODE_ENV |
Environment mode | development |
PORT |
Port to run the application | 3000 |
NEXT_PUBLIC_APP_URL |
Public URL of the application | http://localhost:3000 |
Create a .env.local
file in the root directory:
NODE_ENV=development
NEXT_PUBLIC_APP_URL=http://localhost:3000
please refer to this documentation
We welcome contributions! Here's how you can help:
- ๐ Translations: Help translate content to new languages
- ๐ Content: Improve existing lessons or add new ones
- ๐ Bug Reports: Report issues you encounter
- ๐ก Feature Requests: Suggest new features
- ๐ง Code: Submit pull requests with improvements
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes: Follow the coding standards
- Test thoroughly: Ensure everything works correctly
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to branch:
git push origin feature/amazing-feature
- Open a Pull Request: Describe your changes clearly
- ๐ Documentation: Check the Dictionary Documentation
- ๐ Issues: Report bugs on the GitHub Issues page
- ๐ฌ Discussions: Join conversations in GitHub Discussions
- ๐ง Contact: Reach out to the maintainers
This project is licensed under the CC-BY-SA-4.0 License - see the LICENSE file for details.
- ๐ LinuxJourney: Original inspiration for this project
- ๐ง Linux Community: For the wealth of knowledge and support
- ๐ฅ Contributors: Everyone who has contributed to making this project better
- ๐ Users: All the learners who use this platform to master Linux