Skip to content

tech9ic/VirOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

42 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•”β•β•β•β•β•
β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β•šβ•β•β•β•β–ˆβ–ˆβ•‘
 β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘
  β•šβ•β•β•β•  β•šβ•β•β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•
  a little bit of me...

A nostalgic journey back to classic desktop computing

React TypeScript TailwindCSS Express.js PostgreSQL Web License


Features β€’ Technologies β€’ Installation β€’ Usage β€’ Deployment β€’ License

🌟 Overview

VirOS (formerly VirOS) is a modern web-based simulation of classic desktop operating systems. It features an interactive desktop environment with draggable icons, windowing system, and terminal emulation - all accessible from any device with a web browser.

The application offers a nostalgic computing experience combined with modern web technologies to create a unique interface that works seamlessly across desktop and mobile devices.

✨ Features

  • πŸ–₯️ Desktop Environment: Fully interactive desktop with draggable icons and window management
  • πŸ›‘οΈ System Files: Protected system files (System, Projects, Buffer, Terminal, bibhu.exe) that cannot be deleted or renamed
  • πŸ’» Terminal Emulator: Functional terminal with command support
  • πŸ“ File Management: Create, rename, delete, and organize files and folders
  • πŸ“± Responsive Design: Optimized for all device sizes - desktop, tablet and mobile
  • πŸŒ“ Theme Support: Toggle between light and dark modes
  • ☁️ Cloud Storage: Persistent state with browser localStorage (settings and files)

πŸ”§ Technologies

React
React
TypeScript
TypeScript
TailwindCSS
TailwindCSS
Express
Express
PostgreSQL
PostgreSQL
  • State Management: Zustand for global state with persistence
  • UI Components: Custom-built Windows and Desktop components
  • DnD: React DnD for drag-and-drop functionality
  • API: RESTful API for data operations

πŸ“¦ Installation

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • PostgreSQL database

Setup Steps

  1. Clone the repository

    git clone https://github.com/yourusername/VirOS.git
    cd viros
  2. Install dependencies

    npm install
  3. Configure environment variables

    Create a .env file with your database connection:

    DATABASE_URL=postgresql://username:password@localhost:5432/VirOS
    
  4. Set up the database

    npm run db:push
  5. Launch the development server

    npm run dev
  6. Open in browser

    Navigate to http://localhost:3000

🐳 Docker Setup

We provide Docker support for easy deployment:

  1. Build the image

    docker build -t viros .
  2. Run the container

    docker run -p 3000:3000 \
      -e DATABASE_URL=postgresql://username:password@host.docker.internal:5432/viros \
      viros

πŸ” Usage

Desktop Controls

Action Description
Left-click Select item
Double-click Open item
Right-click (on desktop) Show desktop context menu
Right-click (on item) Show item context menu (open, rename, delete)
Drag Move items around the desktop
Drag to Buffer Move item to the Buffer

System Files

The following system files cannot be deleted or renamed:

  • System: View system information
  • Projects: Store and organize your files
  • Terminal: Access command-line interface
  • Buffer: Temporary storage for deleted items (like Recycle Bin/Trash)
  • bibhu.exe: View developer portfolio and information

Terminal Commands

  • help - Show available commands
  • echo [text] - Display text
  • date - Show current date/time
  • clear - Clear the terminal
  • ls - List files
  • whoami - Show current user
  • neofetch - Display system information
  • uname - Display OS name
  • cowsay [message] - Display a cow saying your message
  • fortune - Get a random fortune message
  • ping [address] - Simulate pinging an address
  • clear - Clear the terminal
  • ls - List files
  • whoami - Show current user

πŸš€ Deployment

Standard Deployment

  1. Build the application

    npm run build
  2. Start the production server

    npm start

Deployment Platforms

VirOS can be deployed to any platform that supports Node.js:

  • Heroku: Easy deployment with PostgreSQL add-on
  • Vercel: Great for frontend with serverless functions for the backend
  • AWS/GCP/Azure: For more scalable enterprise deployment
  • DigitalOcean: Simple deployment with App Platform

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Inspired by classic desktop operating systems like Windows 95/98 and early MacOS
  • Icon designs from Lucide React
  • Built with modern web technologies while honoring the nostalgia of classic interfaces

Made with ❀️ by tech9ic

Β© 2025 VirOS Project

About

A webapp which looks like an operating system GUI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages