Skip to content

daquino94/linux-path

Repository files navigation

Linux Path

Linux Path Logo

A New Life for LinuxJourney

An interactive learning platform that has helped thousands of people take their first steps into the world of Linux.

Next.js TypeScript Tailwind CSS Docker

Support the Project

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.

Buy Me A Coffee

Features

  • ๐Ÿง 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

Roadmap

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

Dictionary System

Linux Path uses a sophisticated dictionary system for content management and internationalization. For detailed information, see the Dictionary Documentation.

Dictionary Status

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.

Quick Start

Prerequisites

Choose one of the following:

  • Node.js: 18.0+ and npm (for local development)
  • Docker: Latest version (for containerized deployment)

Option 1: Local Development

  1. Clone the repository:

    git clone https://github.com/daquino94/linux-path.git
    cd linux-path
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev
  4. Open your browser: Navigate to http://localhost:3000

Option 2: Production Build (Local)

  1. Clone and install (same as above steps 1-2)

  2. Build the application:

    npm run build
  3. Start the production server:

    npm start

Option 3: Docker Deployment

Using Docker Compose (Recommended)

  1. Clone the repository:

    git clone https://github.com/daquino94/linux-path.git
    cd linux-path
  2. Run with Docker Compose:

    docker-compose up -d

Manual Docker Build

  1. Build the Docker image:

    docker build -t linux-path .
  2. Run the container:

    docker run -d \
      --name linux-path \
      -p 3000:3000 \
      -e NODE_ENV=production \
      linux-path

Architecture

Multi-stage Docker Build

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

Technology Stack

  • 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

Configuration

Environment Variables

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

Development Configuration

Create a .env.local file in the root directory:

NODE_ENV=development
NEXT_PUBLIC_APP_URL=http://localhost:3000

Adding New Content or contributing New Languages

please refer to this documentation

Contributing

We welcome contributions! Here's how you can help:

Ways to Contribute

  1. ๐ŸŒ Translations: Help translate content to new languages
  2. ๐Ÿ“ Content: Improve existing lessons or add new ones
  3. ๐Ÿ› Bug Reports: Report issues you encounter
  4. ๐Ÿ’ก Feature Requests: Suggest new features
  5. ๐Ÿ”ง Code: Submit pull requests with improvements

Development Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes: Follow the coding standards
  4. Test thoroughly: Ensure everything works correctly
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to branch: git push origin feature/amazing-feature
  7. Open a Pull Request: Describe your changes clearly

Support

License

This project is licensed under the CC-BY-SA-4.0 License - see the LICENSE file for details.

Acknowledgments

  • ๐Ÿ™‹ 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

About

An interactive learning platform that has helped thousands of people take their first steps into the world of Linux.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •