Docker images that makes it easier to develop the retro-cloud scripts.
10K+
An expensive and over-engineered approach to storing ROMs and their metadata which sets out to answer the question:
Why buy a cheap USB stick when you can use multiple expensive services in the Cloud?
Install Retro-Cloud on the Raspberry Pi (creates the VM for step 2):
$ curl -fsSL https://raw.githubusercontent.com/seriema/retro-cloud/master/raspberry-pi/download-and-run.sh | bash
# Or:
$ curl -fsSL https://tiny.cc/retro-cloud-setup | bash
# Or the latest development version:
$ curl -fsSL https://tiny.cc/rc-rpi | bash
NOTE! You will be prompted to log into your Azure account. The script pauses with the message:
WARNING: To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code ABCD12345 to authenticate.
$ cd retro-cloud-setup$ bash teardown.sh$ rm -f "$HOME/.retro-cloud.env"$ bash setup.shInstall Retro-Cloud on the VM. Alternatives:
On the Raspberry Pi:
$ bash -i setup-vm.sh
On the VM. Log into the VM from the RPi with $ bash -i ssh-vm.sh, or any other way you want, and then run:
$ curl -fsSL https://raw.githubusercontent.com/seriema/retro-cloud/master/virtual-machine/setup.sh | bash
# Or:
$ curl -fsSL https://tiny.cc/retro-cloud-setup-vm | bash
# Or the latest development version:
$ curl -fsSL https://tiny.cc/rc-vm | bash
Copy ROMs to Azure File Share. Alternatives:
If you already had ROMs on the Raspberry Pi: They're now in roms.bak and can be copied over:
$ cp -R RetroPie/roms.bak/. RetroPie/roms/
If you have ROMs on a desktop: Use Azure Storage Explorer and copy them to Storage Accounts/[numbers]storage/Files Shares/retro-cloud/RetroPie/roms
Add scraper credentials. Retro-Cloud uses Skyscraper by Lars Muldjord for scraping. It supports adding credentials the scraper modules, which can allow you to scrape using more threads, priority when the source is under heavy load, or access to sources that require credentials. Read more here. Alternatives:
$ ./add-scraper-credential.sh MODULE USER PASSWORD$ ./add-scraper-credential.sh MODULE USER PASSWORDScrape for metadata. Alternatives:
Note: This will take a long time. A test run of 6 platforms with 13k files took 10 hours. EmulationStation must not be running during this time.
$ bash -i run-scraper.sh$ ./run-skyscraper.shThis project is in large part install scripts running on someone's Raspberry Pi for the first time. To ensure installation works it's crucial to test on a new RetroPie installation each time. Wiping a SD-card after every test can be time consuming, so there is a Docker image to make this convenient. Therefore, there are three main areas of development: test environment, install scripts, and functionality.
Tip: Use
docker/start.shwhile working on the scripts for faster iteration, andstart.shto test run them from scratch.
docker/setup.sh sets up environment variables for automation (same as used in CI) in a .env file in the root. Avoid the Azure login prompt by setting up a Service Principle account.
Tip: Use
docker/dev/create-service-principal.ps1to conveniently create a Service Principle, and store the results in the.envfile.
docker/build.sh to build a Docker image meant for running locally. The tag is rc:[branch name].docker/test.sh to validate the built Docker image.docker/start.sh to run a throwaway Docker container that:
~/retro-cloud-source, and uses it as the work directory..env file for automation (see docker/setup.sh).docker/publish-arm.sh to build and push an ARM image of the master branch to Docker Hub as seriema/retro-cloud:latest-arm32v7. The AMD image is built by Docker Hub automated builds as seriema/retro-cloud:latest-amd64.lint.sh to lint all .sh files through a Docker image with shellcheck, and check their execution permissions..env file: Used to store environment variables useful during development. It consists of:
AZURE_TENANT_IDAZURE_SERVICE_PRINCIPAL_USERAZURE_SERVICE_PRINCIPAL_SECRET$HOME/.retro-cloud.env)
RETROCLOUD_VM_IPRETROCLOUD_VM_USERRETROCLOUD_VM_SHARERETROCLOUD_AZ_RESOURCE_GROUPCIRCLECI_API_USER_TOKENstart.sh to run a throwaway Docker container using the latest release image.branch=[the branch you want to test], e.g. branch=upgrade-powershellcurl -fOL "https://raw.githubusercontent.com/seriema/retro-cloud/${branch}/raspberry-pi/download-and-run.sh"bash download-and-run.sh "$branch"rm download-and-run.shdocker/compose/run_tests.sh.circleci/build-all-commits.sh to queue a build for every commit between current branch and develop. Meant to be used before creating a PR or merging to develop so that each commit is validated.Some of the Bash scripts above don't work on Windows (Git Bash) so there are some PowerShell equivalents. They aren't guaranteed to be as powerfull as the Bash scripts.
docker/start.ps1docker/test.ps1Note: Requires File Sharing to be enabled. See the Docker documentation.
.sh files are required to have execute permission. To do this in git bash for Windows:
$ git update-index --chmod=+x [file]
Content type
Image
Digest
Size
654.7 MB
Last updated
over 6 years ago
docker pull seriema/retro-cloud