Skip to content
This repository was archived by the owner on Oct 30, 2025. It is now read-only.

Development setup

R.G edited this page Apr 24, 2023 · 20 revisions

If you are here, then you want to setup Shopdeck under a quick setup!

Even if it is "quick", its actually quite long to get it working.

But once it works, it works!

You need a hacked 3DS for Shopdeck to work. Follow https://3ds.hacks.guide if you don't have one.

Estimated time: 1 to 2 hours

IMPORTANT!

When you will connect to your local Shopdeck server, ALL of your downloaded software from the official Nintendo eShop servers is going to be hidden. To show them again, use faketik.

Put the .3dsx file inside the "3ds" folder inside your hacked 3DS SD card, then boot your 3DS with the SD card inserted, launch Homebrew Launcher, and launch "faketik".

Requirements

Special note about the patch

To be sure the patch will work, press SELECT on boot to access Luma3DS menu.

Select "Enable loading external FIRMs and modules" and "Enable game patching".

It should now work.

Special note about Charles

If Charles, when started, starts to record your PC networking activity, go to "Proxy", "Proxy Settings", and click on the "Windows" tab.

You should see something similar to "Windows Proxy". Disable it. You should be good to go!

Instructions

Setup Charles

  1. Download ClCert.p12 from https://github.com/InternalLoss/3DS-SSL-Patch.
  2. Launch Charles. Click on "Proxy", then on "SSL Proxying Settings", then click on "Enable SSL Proxying" if not enabled by default.
  3. In the same window, click on "Add" in the "Include" column. Put * in host, and * in port, like this:

  1. Click on the "Client Certificates" tab. Click on "Create secure store". Put a password of your choice (remember it).
  2. Now, click on the "Add" button. Put * in host and in port like before, and your window should look like this:

  1. Press "Import P12".
  2. Navigate to the place where you put "ClCert.p12", and select it, and click OK.
  3. It should ask for a password. Put "3ds" as the password, and hit OK. Your window should look like this now:

  1. Press OK to finish the setup.
  2. Press OK again.

Setup your 3DS

  1. Be sure the SSL Patch is installed; if not, follow the instructions here: https://github.com/InternalLoss/3DS-SSL-Patch
  2. Power on your 3DS and launch System Settings.
  3. Go to Internet Settings.
  4. Select your connection, and click Modify.
  5. Go to the 2nd page, and hit "Proxy server"
  6. Enable the proxy server, and click "Proxy settings"
  7. Put your computer's local IP as host, and 8888 as the port.
  8. Save the connection with updated settings.
  9. Return to home menu.

If you see a popup appear on your PC saying that a unknown client tried to connect to Charles, hit Allow. This is your 3DS connecting.

If everything went well, you should see some requests to nintendo.net. If they succeed, then CONGRATS!, your console is now being recorded by Charles.

If it doesn't work, however, remove the proxy settings, go to the 3DS internet browser, write in the address bar "http://[ip]:8888/", replacing "[ip]" with your local ip address, and you should get the unknown client popup to accept. Finally, go back to connection settings and put your proxy settings back, it should now work.

If you have issues, however, join this discord server and ask for help in #support: https://discord.com/invite/WHrpZvVgdK

Setup Shopdeck

  1. Open a terminal.
  2. Launch the following command to clone the repository git clone https://github.com/LetsShop3DS/shopdeck.
  3. Now, get into the repository: cd shopdeck
  4. To install dependencies, put the following command: python -m pip install -r requirements.txt
  5. Now, let's setup the server. Go to shopdeck/settings.py and start modifying things as your liking. BE SURE TO CHANGE THE KEY!!!!
  6. Go to the end of the file. In SOAP_URL, put "ecs.c.shop.nintendowifi.net", and for METADATA_API_URL, put "ninja.ctr.shop.nintendo.net".
  7. Once you've done necessary modifications, type python manage.py makemigrations and python manage.py makemigrations shopdeckdb to prepare database migration.
  8. Now, to migrate the database: python manage.py migrate.
  9. Download mkcert, to generate development certificates: https://github.com/FiloSottile/mkcert/releases/
  10. Open a terminal where you put mkcert.
  11. Execute this command: [mkcert file] [your computer local ip address]
  12. It should now generate 2 files: a [ip].pem file and a [ip]-key.pem file.
  13. Now, move those files to the shopdeck directory.
  14. Now, let's create your admin account. Create a terminal in the shopdeck directory, and execute: python manage.py createsuperuser.
  15. Let's execute both servers now! On the same terminal, type: python manage.py runserver_plus --cert-file [your pem file] --key-file [your pem key file] [your local ip address]:9000
  16. Open a new terminal in the shopdeck directory, and run: flask --app main run --cert [your pem file] --key [your pem key file] -h [your local ip address] -p 8000

Note: if flask is not recognized as a program, replace flask by python -m flask.

Now both server should run!

Configure Charles with Shopdeck

  1. Open Charles if it isn't yet.
  2. Go to "Tools", "Rewrite" and click on "Enable rewrite".
  3. Click "Add".
  4. Now, click "Add" in "Location".
  5. Put * in all fields, like this:

  1. Click "Add" here:

You should see a windows like this:

  1. Click on Type, and select URL.
  2. In "Match", click on "Value", and put "https://ecs.c.shop.nintendowifi.net".
  3. In "Replace", click on "Value", and put "https://[your local ip address]:8000"
  4. Press OK.
  5. Repeat the same process again, but for Match put "https://ninja.ctr.shop.nintendo.net", and for Replace put "https://[your local ip address]:9000".
  6. Press OK.
  7. Press OK again.

DONE!

You can now open the Nintendo eShop on your 3DS, and your console should connect to your local Shopdeck server.

If not, get help here in #support: https://discord.com/invite/WHrpZvVgdK with your problem.

But...

We need to activate your Shopdeck account.

For this step to work, you need to connect your 3DS to your Shopdeck server first.

Right now, if you go to your browser and type https://[your local ip address]:9000 in your favorite web browser, and you connect to your admin account, it will say "Your account is misconfigured. Contact an admin. It is not currently usable.".

To fix this error, go to /admin/, then go to Users, and select your user. Then, search for the Linked DS field, click on it, and find your console in the dropdown list. Then, click on Save, and click View Site.

Welcome to Shopdeck!

Clone this wiki locally