-
Notifications
You must be signed in to change notification settings - Fork 45
Installing RetroNAS
RetroNAS installs and enables numerous legacy protocols, many of which are highly insecure by design (in order to be compatible with legacy/retro computers and operating systems). These protocols frequently have known, unfixable exploits due to their legacy nature, and often transmit information such as your Raspberry Pi's usernames and passwords in cleartext (unencrypted).
Please take every effort to keep RetroNAS behind a router/firewall, and never put it on a device with a public IP address.
All RetroNAS installers run as the "root" (admin) user on your Raspberry Pi in order to make changes to your system. While we intend to make our software as bug-free as possible, this does have the potential to delete your data. Please ensure you have everything backed up before installing any RetroNAS component. All RetroNAS code is open source and available in GitHub should you wish to inspect it yourself.
This video will show you how to install RetroNAS on Raspberry Pi OS:
And here's Bob from RetroRGb demonstrating an install too, along with the directory symlink features:
The entire playlist of all RetroNAS videos is available here:
See Supported hardware for a list of supported Raspberry Pi devices and operating systems.
Install Raspberry Pi OS (RPiOS) as per the official RPi Foundation guides:
RetroNAS does not require a desktop environment to run. You may install one if you wish, however RetroNAS provides a "TUI" menu-driven interface that works via the command line or over SSH, but requires minimal Linux admin or command line skills to operate.
After installation, ensure you run raspi-config
and do the following:
- Set up any networking or WiFi (physical wired Ethernet is recommended)
- Set up the RPi's hostname
- Set up the password for both the "root" (admin) and "pi" (standard unprivileged account) users
- Set your locale in the Localisations menu. US users should choose "en_US.UTF-8" if they find things like their "#" symbol are bound to the wrong key (RPiOS is UK made, and will default to UK layouts).
- Enable SSH access if you wish to admin RetroNAS from another machine (highly recommended). This also enables SCP/SFTP (file copy over SSH) which is handy.
A full guide to raspi-config
is provided by the Raspberry Pi Foundation:
If you are going to use the web based tool Cockpit, you will need to enable the root user and set the password. This is optional, however recommended for things like managing external storage. You can do that with the following command:
sudo passwd root
Currently RetroNAS only supports Debian 11 "Bullseye". You can verify your release with the following command:
lsb_release -a
And should see output like such:
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
RetroNAS is strongly recommended to be run on 64bit hardware and software. You can find out what your install is with the following command:
uname -m
Which should output something like the following on a Raspberry Pi 3 or 4 with a 64bit OS:
aarch64
Or the following on an Intel or AMD x86 system in 64bit mode:
x86_64
If you see something like "i386" or "armv7l", you're running in 32bit mode. This is fine for simple tasks and smaller storage, however please note that there have been strange bugs reported with advanced tools like FSP, ps3netsrv and very large hard disks under 32bit mode.
It is strongly recommended that your OS has been upgraded to the latest stable version and patch set, including both software and if you are on a Raspberry Pi, it's onboard firmware. To do so, run the following commands:
sudo apt update
sudo apt full-upgrade
Once Raspberry Pi OS is installed and configured, download the RetroNAS installer. You can either save it in a browser and copy it across via SFTP/SCP, or download it directly on the RPi with the following commands:
sudo apt install -y curl
curl -O https://raw.githubusercontent.com/retronas/retronas/main/install_retronas.sh
Once downloaded, make the script executable:
chmod a+x ./install_retronas.sh
And run the script:
sudo ./install_retronas.sh
This will create the /opt/retronas
folder, and place the latest version of RetroNAS within. Once successful, you can run the RetroNAS main interface with the command:
retronas
in older installations before they are automatically upgraded you will need the command:
sudo /opt/retronas/retronas.sh
On first run you will be presented with a screen communicating security and license information, please read it and type AGREE to continue when prompted.
=============================================================================
WARNING / TERMS OF USE / LICENSE
=============================================================================
RetroNAS is a compilation of existing opensource products.
RetroNAS is made available under the MIT license
https://github.com/retronas/retronas/blob/main/LICENSE
You may view this information again by passing command line options
sudo /opt/retronas/retronas.sh -d
If the default user pi
and default group pi
do not exist on first run the system you will be prompted to enter an appropriate user and group for RetroNAS to run services as. The user will need to have sudo
access, this is the default on rpi installation for the first user.
If the group is misconfigured some services (e.g Samba for MiSTer, Samba for PS2) will fail to install with chgrp: failed to lookup group
listed in the red failure text output by ansible.
Getting started:
Contributing
- Bugs
- Structure
- Testing RetroNAS
- Ideas potential future state stuff
Multi-system protocols:
- ADTPro Apple // era
- EtherDFS MS-DOS/FreeDOS
- ethflop MS-DOS/FreeDOS L2 floppy emulator
- FTP
- HTTP
- Kermit
- NFS
- Netatalk AppleTalk/AFP
- Samba SMB/CIFS
- TNFS Atari 8-bit and ZX Spectrum
- Telnet
- ZeroConf, Bonjour, Avahi
- pyGopherd a HTTP alternative
- zterm Serial Comms Zmodem Transfer
Specific system configurations:
- Supported Clients
- 3DS QR codes Nintendo 3DS and 2DS
- Batocera
- EmuELEC and derivatives
- RecalBox
- EmuDeck
- Analogue Pocket (OpenFPGA)
- FSP Nintendo GameCube
- Fenrir-ODE Webserver Sega Saturn
- MiSTer FPGA
- NABU Internet Adapter
- Netlink Sega Saturn Netlink online play
- OpenPS2Loader PlayStation 2
- XBox360
- dreampi dreampi project for Dreamcast (and others) online
- hb-store-cdn PlayStation 4 Homebrew Store CDN
- ps3netsrv PlayStation 3
- linux-dexdrive Dump/Write PS1 memory card images
- sidecart Atari ST Sidecart
Services:
- WaybackProxy Web Proxy through the Wayback Machine
- WebOne Web Proxy
- macproxy Web Proxy
- wrp Web Proxy
- Cockpit Web management
- Syncthing file synchronization
- ROM import Smokemonsters SMDB
- TCPser software Hayes Modem
- BitTorrent
- aria2 lightweight download utility.
- megatools mega.nz suite
- XLink Kai multi-platform
Tools:
- gogrepo Sync your GOG installers
- SabreTools DAT management tool
- mc Midnight Commander (Norton clone)
- ytree filemanger XTree clone
- far2l far2l filemanager
- Gadgets Linux gadgets (OTG) mode
- affstools
- amitools
Physical Media:
- DiscImageCreator dump redump.org compatible images
- Redumper advance disc dumper
On-Device Management:
- cue2pops BIN/CUE to VCD conversion
- extract-xiso Manage XISOs
- hdl-dump PS2 HDD device management
- nbd-client Network Block Device
- pfsshell PFS shell / PFS fuse
- ucon64 A multi-purpose copier device tool
- xboxmanager An experimental XBOX Manager
- pi1541 setup a pi1541 compatible device
Advanced Topics:
- Storage
- BtrFS RAID, Snapshots, Compression, Deduplication
- FAT Advanced guide to using FAT loopback mounts for EtherDFS
- TBA
- SMR Shingled Magnetic Recording hard drives (TBA)
- NTFS Advanced guide for NTFS formatted disks
- SMB Loopback Mounting an existing SMB NAS
- NFS Loopback Mounting an existing NFS NAS
- MDRAID (TBA)
- LVM (TBA)
- iSCSI Configuring iSCSI
- Networking
- Standalone Independent standalone network
- Zoned Firewall zones for retro and modern networks
- DHCP Basic DHCP on the Ethernet device
Other:
- Installation Profiles
- Generic ROMs folder
- Other projects and sites
- laptop-ao
- Local Module
- Docker and why it's not optimal for a network storage system