Introduction

This guide walks through the basic steps an instructor may follow in order to integrate RemoteRF into their course. The instructions below assume that the RemoteRF server, and any relevant hosts, have already been set up. To complete these instructions, the instructor needs physical access to the RemoteRF server and must execute the commands listed below.

With the RemoteRF server set up and users provided access to it, little to no intervention is required from instructors throughout the course, since the platform is designed to run autonomously.

About User Groups and Enrollment Codes

User groups are mechanisms used by RemoteRF to scope access without manually configuring each student account one-by-one.

  • User Groups: A user group defines the permissions and privileges of its members. It determines which SDRs are accessible to members of the group, the number of reservations each member may hold, and the duration of each reservation.
  • Enrollment Codes: An enrollment code is a token that allows a student to self-enroll into a user group without you manually editing their account on the RemoteRF server.

Note: The server runs a background cleanup loop intended to prune or expire user groups and enrollment codes according to whatever expiration rules are stored in the user-group store.

Creating a User Group

The first step is to create a user group that students will be members of upon registering their RemoteRF accounts. Each user group has a name and unique ID. It is best practice to use a sensible name, such as EE123_F26 if the course number is EE123 and it is being offered in Fall 2026. It is recommended that you create a unique user group for each course offering.

Creating a User Group

To initiate the process of creating a new user group, run:

groups create

You will be prompted for the following:

  • group name
  • devices whitelist as comma-separated device IDs
  • max reservation time (sec) with default 1800
  • max concurrent reservations with default 3
  • group lifetime (sec) with default 0 meaning forever

Example guidance: In undergraduate courses at UCLA with around 60 to 100 students, it has proven sufficient to set reservation time slots to be 30 minutes long and to allow students to hold at most 3 reservations concurrently.

Record User Group ID

To verify that the newly created group exists and to record its unique ID, run:

groups list

You will need the group_id of the user group when generating enrollment codes next.

Generating and Distributing Enrollment Codes

The next step is to generate enrollment codes for the class and then distribute them to students. Users cannot create their accounts without a valid enrollment code.

Enrollment codes are generated for a specific user group. Many enrollment codes can, and often should, be generated at once for that user group. Codes can be made single-use or valid for multiple uses.

Generate Enrollment Codes

To begin the process of generating enrollment codes, run:

codes create

This will prompt you for the following:

  • how many codes to generate
  • group_id of the user group to attach them to
  • number of alphanumeric characters per code
  • number of valid uses per code
  • duration in seconds of the enrollment code’s validity

Example: Suppose you teach a class of 30 students. Best practice would be to first create a user group for that class with the desired permissions per student, then create around 45 enrollment codes rather than only 30, so extra codes can be given to students who need to create a new account upon forgetting their credentials.

Distribute Enrollment Codes to Students

Once enrollment codes have been generated, they need to be shared with students in the class. To simplify this process, the RemoteRF server can write the list of enrollment codes to a CSV file.

  • Share the generated code_name values with students
  • groups csv writes all groups to a CSV in Downloads
  • codes csv writes all codes to a CSV in Downloads
  • codes list lets you view code and group metadata

If you create a single code with many uses, then you only need to distribute one code per class, but there is the possibility that the code is abused by a single student to create more than one RemoteRF account.

Making Modifications Mid-Course

If changes need to be made to a user group or if enrollment codes need to be deleted, follow the instructions below.

Editing User Group Permissions

To edit the permissions and privileges of an existing user group, run:

groups edit

Afterward, input the ID of the user group you wish to edit. You will then be prompted for optional edits such as:

  • new group_name
  • new devices_whitelist
  • new max_reservation_time_sec
  • new max_reservations
  • new lifetime_sec

This updates the existing permissions and privileges of all existing members of the user group.

Deleting a Single Enrollment Code

To revoke a single leaked code by name:

codes delete

Then choose the delete-by-name path and enter the code_name.

Deleting codes stops new enrollments via those codes. Existing members do not lose access.

Deleting All Enrollment Codes for a User Group

Use codes delete, then choose the delete-by-group flow and enter the group_id.

Deleting an Entire User Group

Remove a group entirely with:

groups delete

Users’ accounts will not be deleted, but they will lose all permissions and access given by that user group.

Client Installation

Clients, such as students, will need a few things from administrators to begin using the platform:

  • Static IP and port of the reachable RemoteRF instance
  • Valid enrollment code to create an account

Refer to the client usage guide, and as the admin you will need to provide them with a populated configuration command:

remoterf --config --addr <staticIP:Port>

# Example
remoterf --config --addr 164.67.195.207:61005
remoterf -c -a 164.67.195.207:61005

Along with this, each student also needs a valid enrollment code.