# Lume Web > Freedom. Privacy. Ownership. import { Callout } from 'vocs/components' import RoadmapTable from '../../components/RoadmapTable' This roadmap outlines our planned development timeline. Dates and features may adjust based on community needs and technical considerations. ## Portal Features ### Core Features #### Content Access & Storage * Multi-protocol support (currently IPFS, more coming) * Content pinning and persistence * File sharing and distribution * Content verification and integrity checks #### Privacy & Security * Support for end-to-end encrypted content (via applications, not portal-level) * Privacy-preserving access methods * No tracking or data collection * User-controlled data ownership #### Developer Tools * RESTful API access * Batch operations ### Protocol Support Current: * IPFS - Full support for content access and pinning Planned: * S5 - Integration in development * Bluesky - Social protocol integration * Nostr - Decentralized social networking * LBRY - Decentralized media platform * IPNS - Name system support * Cloud data importing - Migration tools for existing services * Additional protocols based on community needs ### Portal Dashboard * Account management * Content management interface * Usage monitoring * API key management ### Service Levels Both web3portal.com and pinner.xyz offer identical features, differing only in their funding model: * **web3portal.com**: Public good, grant-funded * Fair use limits * Community focused * **pinner.xyz**: Commercial service * Supports development * Community service ## Lume Portal Overview The Lume Portal is your gateway to decentralized networks, making Web3 accessible without complex technical setup. It serves as a bridge between traditional web services and decentralized protocols. ### What is a Portal? A portal acts as an access point and relay, allowing you to: * Access content across decentralized networks * Store and share your own content * Interact with Web3 services seamlessly * Maintain privacy and data ownership ### Our Portal Services We provide two portal options with identical capabilities: * **web3portal.com** * A public good funded by the Sia Foundation grant * Free access with fair use protections * **pinner.xyz** * A paid community service (commercial) * Supports ongoing development ### Core Functionality The portal provides: * Multi-protocol support (currently IPFS, more coming) * Content discovery and routing * Data verification and integrity checks * Privacy-preserving access methods ### Use Case Common ways to use the portal (some planned for future releases): * Access decentralized websites and applications * Share content peer-to-peer * Social networking without centralized control * Media streaming and sharing * Build Web3-enabled applications * Host content without traditional web servers For specific information about storing files, see our [File Storage Guide](/portal/storing-files). For detailed feature information, check out our [Features Overview](/portal/features). ### Getting Started 1. Choose your portal (web3portal.com or pinner.xyz) 2. Create an account 3. Start accessing and sharing content ### Next Steps * Learn about [storing files](/portal/storing-files) * Explore available [features](/portal/features) * For developers: check out our API documentation (coming soon) ### title: Storing Files ## Storing Files The Lume Portal provides access to decentralized storage through IPFS, with more protocols planned. Here's what you need to know about storing files through our services. ### Current Status We offer two portal options: * **web3portal.com** - A community portal funded by Sia Foundation grant (launching soon) * Free access with fair use limits * May prune inactive content/accounts to prevent abuse * **pinner.xyz** - Our paid service portal * Same core functionality as web3portal.com * Supports ongoing development through user funding Both portals offer: * IPFS support (more protocols planned) * API access * File management tools * Custom pin management * Batch operations The key difference is not in functionality, but in the funding model. web3portal.com is grant-funded as a public good with fair use limits, while pinner.xyz is a paid community service (commercial). ### How It Works When storing files through a Lume Portal: 1. Files are encrypted client-side before upload 2. Data is distributed across decentralized networks (currently IPFS) 3. You receive a CID (Content Identifier) to access your files 4. Content Accessibility: * Files stored on IPFS can be accessed through any IPFS gateway or node * This means your content isn't locked to Lume's portals * You can use other IPFS-compatible services to access your files * The CID works as a universal reference across the IPFS network This interoperability is a key feature of decentralized storage - your data isn't locked into our system. Whether you use web3portal.com, pinner.xyz, or another IPFS service, your content remains accessible as long as it's pinned somewhere on the network. ### Key Benefits * **True ownership**: Your files are encrypted and only you control access * **Censorship resistance**: No single point of failure for storage * **Durability**: Data is redundantly stored across the network * **Privacy**: End-to-end encryption keeps your data private ### Getting Started To start storing files: 1. Choose your portal (web3portal.com or pinner.xyz) 2. Create an account 3. Access the dashboard 4. Upload and manage your content ### Technical Details For developers interested in the technical implementation: * Content-addressed storage using CIDs * Industry-standard encryption * Multiple protocol support * API access (on pinner.xyz) ### Pricing * **web3portal.com**: Free community service, funded by a grant from the Sia Foundation to support public access to decentralized storage * **pinner.xyz**: Visit [pinner.xyz](https://pinner.xyz) for current pricing tiers and options The web3portal.com service demonstrates our commitment to accessible decentralized storage, made possible through Sia Foundation grant funding. This allows us to provide a free community portal while developing sustainable infrastructure through our paid pinner.xyz service. ## Operating a Portal ### Introduction Running a Lume Portal means providing gateway access to decentralized networks. You can run a portal for: * Private use within your organization * Public access as a community service * Development and testing Each portal contributes to the broader network of decentralized access points. ### Base Requirements #### Software * Linux (Ubuntu 22.04 LTS recommended) * Go 1.23+ * Docker (optional but recommended) #### Network * Public IP address * Port 443 for HTTPS access * Additional ports opened based on enabled plugins (documented per plugin) #### Hardware * 4 CPU cores * 8GB RAM * 20GB SSD storage for base system #### Database * SQLite by default (good for most deployments) * MySQL/PostgreSQL optional for larger deployments The portal is designed to start small and scale up. You can begin with these base requirements and expand resources as your needs grow. ### Plugin Considerations Each plugin has different resource needs. We recommend starting with 1-2 plugins and monitoring resource usage before enabling more. ### Planning Your Deployment Before setting up your portal: 1. **Choose Your Plugins** * Decide which protocols to support * Review each plugin's requirements * Plan for resource needs 2. **Consider Your User** * Private or public access * Expected usage patterns * Access controls needed 3. **Basic Security** * Network security * Access management * Update procedures Ready to install? Continue to our [Setup Guide](/operators/setup). ## Setting Up Your Portal ### Prerequisites #### System Requirements * Linux (Ubuntu 22.04 LTS recommended) * Go 1.23+ * Git * Build tools (gcc, make) * Domain name pointed to your server (if using SSL/TLS) * Port 80/443 accessible (if using SSL/TLS, or custom port if configured) #### System Preparation ```bash # Install required system packages sudo apt update sudo apt install -y build-essential git curl ``` #### Optional: SSL/TLS Setup with Caddy If you need HTTPS support, we recommend using Caddy: ```bash # Install Caddy sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy ``` ### Installation #### 1. Install xportal Tool ```bash GOPROXY=direct go install go.lumeweb.com/xportal/cmd/xportal@latest ``` #### 2. Build Portal with Core Plugins ```bash xportal build \ --with go.lumeweb.com/portal-plugin-dashboard@latest \ --with go.lumeweb.com/portal-plugin-frontend@latest \ --with go.lumeweb.com/portal-plugin-ipfs@latest ``` ### Configuration The portal requires configuration in `/etc/lumeweb/portal/core.yaml`. Below are all required settings and their defaults where applicable. #### Core Configuration ```yaml # Required Basic Settings (no defaults) domain: "your-domain.com" # Your portal's domain portal_name: "My Portal" # Display name for your portal port: 8080 # Port to listen on (can be customized) # Database Configuration db: # Defaults to sqlite with these settings: type: "sqlite" file: "portal.db" # If using MySQL, all these are required: # type: "mysql" # host: "localhost" # Defaults to localhost # port: 3306 # Defaults to 3306 # username: "portal" # Required, no default # password: "password" # Required, no default # name: "portal" # Defaults to "portal" cache: mode: "memory" # Defaults to "memory" # Mail Configuration (all required, minimal defaults) mail: host: "smtp.example.com" port: 25 # Defaults to 25 ssl: false # Defaults to false auth_type: "plain" # Defaults to "plain" username: "portal@example.com" password: "yourpassword" from: "portal@example.com" # Storage Configuration storage: s3: buffer_bucket: "your-bucket" # Required, no default endpoint: "s3.example.com" # Required, no default region: "us-east-1" # Required, no default access_key: "your-access-key" # Required, no default secret_key: "your-secret-key" # Required, no default sia: key: "your-sia-key" # Required, no default cluster: false # Defaults to false url: "" # Required only if cluster: true # System Settings log: level: "info" # Defaults to "info" account: deletion_grace_period: 48 # Defaults to 48 hours (24 * 2) cron: enabled: true # Defaults to true queue_limit: 50 # Defaults to 50 post_upload_limit: 104857600 # Defaults to 100MB ``` #### Plugin Configuration The portal will automatically create plugin configuration directories under `/etc/lumeweb/portal/plugins.d/`. Each plugin may have its own configuration requirements - see plugin-specific documentation for details. ### Running the Portal #### Service Setup 1. Create `/etc/systemd/system/portal.service`: ```ini [Unit] Description=Lume Portal After=network.target [Service] Type=simple User=portal ExecStart=/usr/local/bin/portal Restart=always [Install] WantedBy=multi-user.target ``` 2. Start the portal service: ```bash sudo systemctl daemon-reload sudo systemctl enable portal sudo systemctl start portal ``` 3. Optional: If using Caddy for SSL/TLS, create `/etc/caddy/Caddyfile`: ``` your-domain.com { reverse_proxy localhost:8080 } *.your-domain.com { reverse_proxy localhost:8080 } ``` Note: Caddy only supports DNS-based ACME challenges for wildcard certificates. See [Caddy's automatic HTTPS documentation](https://caddyserver.com/docs/automatic-https) for configuring DNS providers. Then start Caddy: ```bash sudo systemctl enable caddy sudo systemctl start caddy ``` ### Verification #### Health Checks 1. Verify the service is running: ```bash sudo systemctl status portal ``` 2. Check logs for errors: ```bash sudo journalctl -u portal ``` 3. Test web access: * Main portal: `https://your-domain.com` (through Caddy) * Dashboard: `https://account.your-domain.com` (through Caddy) * Direct portal access: `http://localhost:8080` (without Caddy) #### Common Issues 1. **Configuration Errors** * Check all required fields are set * Verify file permissions * Review logs for specific error messages 2. **Network Issues** * Verify port 80 is accessible for Caddy * Verify portal port (default 8080) is accessible locally * Check domain DNS settings * Confirm firewall rules 3. **Database Issues** * Verify database connection settings * Check database user permissions * Ensure storage paths are writable ### Next Steps 1. Configure additional plugins as needed 2. Set up monitoring and backups 3. Review security settings 4. Verify Caddy SSL certificate auto-provisioning For additional help: * Join our community channels * Review plugin-specific documentation `What is Lume?` This is something we have often asked ourselves to explain it 😅. Lume has attempted to be several things as experiments in the past. We intend to continue those experiments in the future, as they were important to do, and are in some of our long term goals. Today, Lume is more of a symbolic vision of what we want to achieve. * We intend to use P2P technology to solve access issues to the open web and to open money (defi). * We intend to ensure you have the freedom to create, share, and own your content and private data. * We intend to leverage the crypto economy to do what we believe P2P technology cannot do alone, in a quid pro quo manner. * We intend to be the users gateway into web3 and bring it mainstream, pushing civil rights further. * We intend to break you out of the big-tech sandbox and give you your freedom back. We are actively building technologies, but we are also building to be financially sustainable, funded by our community as a community-focused service provider. We are currently grant funded by the Sia Foundation, and aim for having our community fund development long term by using our services we will offer. Simply put, this means anything offered as a service under the Lume Web brand goes towards R\&D for public goods technologies and effectively web3 development for civil rights. And *everything* we create is under an [OSI approved license](https://opensource.org). Most of it is under MIT! Lume started (before we even decided it was a project or the name) while we were trying to create a web3 cloud drive on Nextcloud based on Skynet. We realized that we were going down the wrong path and needed to solve accessing content before doing anything with the content itself. Skynet in the process had a very rough year, as since 2020, Skynet tried to solve distribution with network of Skynet Portals, but experienced number of obstacles from all levels of internet infrastructure and eventually was shut down. Sia in the background was trying to support both innovating and Skynets efforts, and things came to a head with Skynet going bankrupt. In that journey, Lume has pivoted at-least 1 time to meet its goals, and has ended up having to build many building blocks out of necessity, and a few that may go unused 🙃. Sia has since started rebuilding with new software, and Lume has been building on top. Sia is the network of the worlds data, and Handshake replaces ICANN while collaborating with the web3 ecosystem. We have discussed Sia a lot so far, but let it also be known the Handshake tribe has had its own share of drama too, and Lume is actively involved in both. So the rabbit hole of Web3 DNS is where we started as the origin of Lume, which means the `world` or `light` in Romanian. It was our intention from the beginning to contribute to the solution of the web's censorship issues and becoming a bridge (or gateway) to the Web3. ## Getting Started with Lume We believe in building practical solutions for a more open internet. That's why we're creating tools that bridge traditional and decentralized technologies. ### Who is Lume For? We're focused on users who: * Value privacy and digital freedom * Want more control over their online experience * Are interested in Web3 but need practical solutions, or just want better privacy and data ownership * Believe in supporting sustainable, community-driven development ### What We Offer Here's what we're building: * A portal service that makes Web3 accessible today * Privacy-respecting infrastructure that balances innovation with sustainability * Tools that work within current systems while pushing toward decentralization * Community-funded development of public goods technology We're taking a balanced approach - building real Web3 infrastructure while ensuring our services are reliable and sustainable. This means some compromises today, but always with the goal of expanding digital freedom tomorrow. ### Next Steps 1. [Check out our roadmap](/roadmap) to see our vision 2. Join our community (coming soon) 3. Start using the portal (launch details coming Q1 2024) Want to learn more about our approach? Check out [What is Lume?](/intro/about)