Nextcloud Share for Game Consoles
A cross-platform homebrew application for game consoles that enables users to upload screenshots, recordings, and other files directly from their devices to Nextcloud servers.
🎮 Supported Platforms
Current
- Nintendo 3DS (CIA and 3DSX formats)
Planned
- Nintendo Switch
- Nintendo Wii U
- PlayStation Vita
- Android / iOS
- PC (Windows, Linux, macOS)
✨ Features
- 📁 Browse local filesystem (SD card, internal storage)
- ☁️ Upload files directly to Nextcloud via WebDAV
- 🔗 Support for custom Nextcloud server URLs
- ⭐ Save favorite upload folders
- 🕐 Quick access to recently used folders
- 🔒 Secure credential storage
- 📊 Upload progress tracking
- 🎯 User-friendly interface optimized for each platform
🏗️ Project Structure
nextcloud-share/
├── shared/ # Shared C/C++ library (libnextcloud)
├── 3ds/ # Nintendo 3DS homebrew app
├── docker/ # Container definitions for build environments
├── scripts/ # Build and utility scripts
└── .plans/ # Feature plans and documentation
📋 Prerequisites
To build this project, you only need:
- Podman (or Docker) - All build tools run in containers
- Git - For version control
You do NOT need to install:
- devkitARM, devkitPro, or other platform SDKs
- Platform-specific toolchains
- Cross-compilers
Everything runs in isolated containers!
🚀 Quick Start
1. Clone the Repository
git clone https://git.tomusan.com/your-username/nextcloud-share.git
cd nextcloud-share
2. Configure Test Environment
Copy the example configuration file:
cp config.example config
Edit config and add your test Nextcloud credentials:
# Local test configuration - DO NOT COMMIT THIS FILE
NEXTCLOUD_URL=https://your-nextcloud-instance.com
NEXTCLOUD_USER=your-username
NEXTCLOUD_PASSWORD=your-password
Note: The config file is in .gitignore and will never be committed. Each developer should create their own local config.
3. Build Using Podman
Build the 3DS version:
# Build the container image (first time only)
podman build -f docker/devkitarm.Dockerfile -t nextcloud-share-3ds .
# Compile the project
podman run --rm -v ./:/project:z nextcloud-share-3ds make -C 3ds
# Output files will be in 3ds/build/
Run tests:
podman run --rm -v ./:/project:z nextcloud-share-3ds make test
Interactive development shell:
podman run --rm -it -v ./:/project:z nextcloud-share-3ds bash
🔧 Building
Detailed build instructions for each platform will be added as they are implemented. See platform-specific README files:
- 3ds/README.md - Nintendo 3DS build instructions
- More coming soon...
⚙️ Configuration
Local Development Configuration
The config file (copied from config.example) is used for local testing:
NEXTCLOUD_URL=https://cloud.example.com
NEXTCLOUD_USER=testuser
NEXTCLOUD_PASSWORD=testpass
MAX_RECENT_FOLDERS=5 # Build-time option
CI/CD Environment Variables
For CI/CD pipelines, use environment variables to override the local config:
NEXTCLOUD_TEST_URL- Test server URLNEXTCLOUD_TEST_USER- Test usernameNEXTCLOUD_TEST_PASSWORD- Test passwordMAX_RECENT_FOLDERS- Number of recent folders to track
Example:
NEXTCLOUD_TEST_URL=https://cloud.tomusan.com \
NEXTCLOUD_TEST_USER=ci-user \
NEXTCLOUD_TEST_PASSWORD=ci-pass \
podman run --rm -v ./:/project:z nextcloud-share-3ds make
🧪 Testing
# Run unit tests
podman run --rm -v ./:/project:z nextcloud-share-3ds make test
# Run integration tests (requires valid Nextcloud credentials in config)
podman run --rm -v ./:/project:z nextcloud-share-3ds make integration-test
🤝 Contributing
We use the git-flow workflow:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature develop - Commit your changes following our style guide
- Push to your fork and submit a pull request to
develop
See CONTRIBUTING.md for detailed guidelines (coming soon).
📝 Development Workflow
- Issues are tracked on Gitea: https://git.tomusan.com
- Feature plans are documented in
.plans/ - Each feature gets its own branch following git-flow conventions
- All builds and tests run in containers
- CI/CD automatically validates pull requests
🗺️ Roadmap
See .plans/CreateProject.md for the complete project plan and milestones.
Key upcoming features:
- ✅ Nintendo 3DS support
- ⏳ Additional platform support (Switch, Wii U, Vita)
- ⏳ OAuth2 authentication
- ⏳ Automatic screenshot detection
- ⏳ Folder synchronization
📖 Documentation
- Project Creation Plan
- User Guide (coming soon)
- Developer Guide (coming soon)
- API Documentation (coming soon)
📄 License
[License TBD - to be determined]
🙏 Acknowledgments
- devkitPro team for homebrew toolchains
- Nextcloud community
- All contributors to this project
📞 Support
- Issue Tracker: https://git.tomusan.com/your-username/nextcloud-share/issues
- Documentation: https://git.tomusan.com/your-username/nextcloud-share/wiki
Note: This project is in active development. Features and documentation are being added continuously.