* feat(gui): Enhance taskbar functionality and positioning - Implement dynamic taskbar position management with options for left, bottom, and right placements. - Update desktop dimensions and window positioning based on taskbar position. - Add context menu options for changing taskbar position on desktop devices. - Ensure mobile devices always display the taskbar at the bottom. - Introduce CSS styles for taskbar positioning and adjust desktop padding accordingly. * feat(gui): Reinitialize tooltips based on taskbar position - Implement dynamic tooltip positioning for taskbar items based on the current taskbar location (left, right, bottom). - Ensure tooltips are destroyed and recreated when the taskbar position is updated, enhancing user experience and consistency. * feat(gui): Improve taskbar and tooltip positioning - Add support for dynamic tooltip positioning for the 'top' taskbar location. - Adjust CSS styles for arrow tooltips to enhance visual alignment and positioning. - Refine taskbar item positioning for left and right placements to ensure consistent appearance. * Improve popover positioning based on taskbar location - Improve `UIPopover` positioning logic to account for left and right taskbar placements. - Adjust Y position of popovers to ensure they appear correctly below toolbars for left/right taskbars. - Update CSS styles for arrow tooltips to enforce consistent positioning with !important declarations. * Refactor context menu positioning logic in UITaskbarItem - Introduce a helper function to dynamically calculate context menu position based on the taskbar's location (top, bottom, left, right). - Ensure context menus are positioned correctly relative to the taskbar item, improving usability across different taskbar placements. * Fix UITaskbar window height calculation for consistent positioning - Adjust the height calculation for windows in the UITaskbar to remove an unnecessary offset, ensuring accurate window sizing relative to the toolbar height. - This change improves the visual consistency of maximized windows across different taskbar placements. * Enhance window snapping and positioning based on taskbar location - Introduce a new function to calculate snap dimensions and positions dynamically based on the taskbar's location (left, right, bottom). - Update window snapping logic to ensure windows are positioned correctly relative to the taskbar, improving usability and visual consistency. - Adjust boundary checks for window placement to account for taskbar height and position, enhancing the overall user experience. * Update default taskbar position to 'left' and adjust CSS padding for desktop layout - Change the default taskbar position from 'bottom' to 'left' in UITaskbar. - Modify CSS to increase left padding for desktop taskbar positioning, enhancing layout consistency. * Improve CSS for desktop layout with height adjustments - Update CSS styles for input fields and desktop taskbar to set height to 100vh, ensuring consistent full-page layout across different screen sizes. - This change improves the visual consistency and usability of the interface. * Improve desktop selectable interactivity and taskbar tooltip behavior - Add functionality to mark the desktop as selectable active, improving user interaction with desktop elements. - Update tooltip display logic to only show when the desktop is not in a selectable state, enhancing usability. - Adjust CSS styles for desktop layout, ensuring consistent behavior and appearance when the desktop is active or inactive. * Update default taskbar position logic for first-time and existing users - Set the taskbar position to 'left' for first-time visitors and default to 'bottom' for returning users without a saved preference. - This change improves the user experience by providing a more intuitive initial layout for new users while maintaining consistency for existing users.
The Internet OS! Free, Open-Source, and Self-Hostable.
« LIVE DEMO »
Puter.com
·
App Store
·
Developers
·
CLI
·
Discord
·
Reddit
·
X
Puter
Puter is an advanced, open-source internet operating system designed to be feature-rich, exceptionally fast, and highly extensible. Puter can be used as:
- A privacy-first personal cloud to keep all your files, apps, and games in one secure place, accessible from anywhere at any time.
- A platform for building and publishing websites, web apps, and games.
- An alternative to Dropbox, Google Drive, OneDrive, etc. with a fresh interface and powerful features.
- A remote desktop environment for servers and workstations.
- A friendly, open-source project and community to learn about web development, cloud computing, distributed systems, and much more!
Getting Started
💻 Local Development
git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start
✨ This should launch Puter at http://puter.localhost:4100 (or the next available port).
If this does not work, see First Run Issues for troubleshooting steps.
🐳 Docker
mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter ghcr.io/heyputer/puter
✨ This should launch Puter at http://puter.localhost:4100 (or the next available port).
🐙 Docker Compose
Linux/macOS
mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up
✨ This should be available at http://puter.localhost:4100 (or the next available port).
Windows
mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up
✨ This should launch Puter at http://puter.localhost:4100 (or the next available port).
🚀 Self-Hosting
For detailed guides on self-hosting Puter, including configuration options and best practices, see our Self-Hosting Documentation.
☁️ Puter.com
Puter is available as a hosted service at puter.com.
System Requirements
- Operating Systems: Linux, macOS, Windows
- RAM: 2GB minimum (4GB recommended)
- Disk Space: 1GB free space
- Node.js: Version 16+ (Version 23+ recommended)
- npm: Latest stable version
Support
Connect with the maintainers and community through these channels:
- Bug report or feature request? Please open an issue.
- Discord: discord.com/invite/PQcx7Teh8u
- X (Twitter): x.com/HeyPuter
- Reddit: reddit.com/r/puter/
- Mastodon: mastodon.social/@puter
- Security issues? security@puter.com
- Email maintainers at hi@puter.com
We are always happy to help you with any questions you may have. Don't hesitate to ask!
License
This repository, including all its contents, sub-projects, modules, and components, is licensed under AGPL-3.0 unless explicitly stated otherwise. Third-party libraries included in this repository may be subject to their own licenses.
Translations
- Arabic / العربية
- Armenian / Հայերեն
- Bengali / বাংলা
- Chinese / 中文
- Danish / Dansk
- English
- Farsi / فارسی
- Finnish / Suomi
- French / Français
- German/ Deutsch
- Hebrew/ עברית
- Hindi / हिंदी
- Hungarian / Magyar
- Indonesian / Bahasa Indonesia
- Italian / Italiano
- Japanese / 日本語
- Korean / 한국어
- Malayalam / മലയാളം
- Polish / Polski
- Portuguese / Português
- Romanian / Română
- Russian / Русский
- Spanish / Español
- Swedish / Svenska
- Tamil / தமிழ்
- Telugu / తెలుగు
- Thai / ไทย
- Turkish / Türkçe
- Ukrainian / Українська
- Urdu / اردو
- Vietnamese / Tiếng Việt

