Home — Runestone Academy (original) (raw)

March 16, 2026

Easy Install

I know that running your own server is not for everyone, but we want to make it was easy as possible for Runestone to support the students who need us. But sometimes Government regulations or institutional policies make it difficult to use a third party hosting service. For those of you who want to run your own server, we have created an easy install script that will set up a Runestone server on your machine. This script will install all the necessary dependencies and configure the server for you.

To use the easy install script, copy and paste the following command into your terminal:

bash <(curl -fsSL https://raw.githubusercontent.com/RunestoneInteractive/rs/main/init_runestone.sh)

This will download and run the easy install script. The script will ask you a few questions about your setup, It will then install all the necessary dependencies and configure the server for you. You will need to have Docker installed on your machine for this to work. If you do not have Docker installed, there are some great tutorials online that can help you get started such as Docker for Beginners.

Why Run your own Server?

There are a few reasons why you might want to run your own server:

All of these are valid reasons, and we understand that running your own server is not for everyone. We are here to support you regardless of how you choose to use our software. If you have any questions about running your own server, please feel free to reach out to us on our public forumsor GitHub. We are happy to help you get set up and answer any questions you may have. We also welcome contributions to the easy install script, if you have any improvements or suggestions please let us know!

I would also like to acknowledge Tyler Conzet for his work on the easy install script. Tyler was a former student of mine and has been a great contributor to the Runestone project. He has done a lot of work on the easy install script and has made it much easier for people to run their own servers. Thank you Tyler!

Keeping up to date

If you choose to run your own server, it is important to keep it up to date. We are constantly making improvements and adding new features to the software, and it is important to keep your server up to date in order to take advantage of these improvements. We recommend that you check for updates regularly and apply them as soon as possible. You can check for updates by running the following command in your terminal:

cd /wherever/you/installed/runestone docker compose pull docker compose stop && docker compose up -d

Occasionally it may be necessary to run a database migration when we make changes to the database schema. If this is the case, we will provide instructions on how to run the migration. We will also provide instructions on how to roll back the migration if something goes wrong. We recommend that you back up your database before applying any updates, just in case something goes wrong. Most updates should be seamless, but occasionally we add more data to the database in the form of new columns or new tables. These migrations will not result in the loss of any data, but it is always a good idea to have a backup just in case something goes wrong.

Feedback

As this is a new feature, we would love to hear your feedback on the easy install script. If you have any suggestions for improvements or if you encounter any issues, please let us know on our public forums or GitHub. Your feedback is invaluable to us and helps us improve the software for everyone. We are committed to making the easy install script as user-friendly and reliable as possible, and we appreciate any feedback you can provide.

October 10, 2025

Mid-term Updates

It has been a relatively calm Fall 2025 semester! Thanks to everyone for your patience and issue reports. I had a wonderful September exploring six of our amazing national parks! I am back to work and have been able to address a number of issues and feature requests. Here are some highlights:

One specific change that I would like to highlight is:

I am also considering adding an accommodation that would allow instructors to email students a link to an assignment that is not yet visible. This would allow students with accommodations to access assignments early or late. Please let me know if this would be useful. This is different than the current “visible” option in that the assignment would not be visible to students unless they had the link.

This is a community effort, and I am grateful for everyone’s contributions. Thank you! For those of you who are new, welcome to the community! Please remember that this is a volunteer effort, we don’t have full time staff of support people to answer your questions. qn Please be patient and respectful of others’ time and efforts, please use our public forums to ask questions or discuss problems. If you find that something is not working, please take some time to investigate and report the issue on GitHub. The more information you can provide, the better! Do not presume that because you are having a problem, that everyone else is. Please help us help you! You may use the software differently from others. We welcome constructive feedback and suggestions.

For those of you that use our accommodations feature I would love to hear your feedback. I am considering adding the option to allow students to access an assignment if they have a direct link to a non-visible assignment and have an accommodation that allows them to do so. Please let me know if this would be useful.

August 22, 2025

GenAI in CS Consortium

GenAI Consortium Logo

Exciting news! Runestone Academy received funding from the GenAI in CS Consortium to support educators in strategically integrating genAI into their teaching methods and curricula. The consortium is a destination for academics seeking example courses and overall guidance. Check it out at TeachCSwithAI.org

Our first project will be to integrate Runestone books with Learning Clues to provide secure 24x7 tutoring for your students. Students will be able to ask questions, and have a conversation with AI with all of the responses grounded in the content provided on Runestone Academy.

August 17, 2025

Fall 2025 Transitions

Welcome back! Registrations have begun to soar for the Fall 2025 semester, and we are excited to see many new faces joining our community. As we prepare for the upcoming semester, here are some important updates and transitions to keep in mind. We realize that transitions like this can be challenging and confusing, we appreciate your patience and understanding as we work through these changes.

New Instructor Dashboard

You will notice a revamped instructor dashboard. It has a new look, and uses a modern web framework on the backend. Please let us know if you encounter any issues as the backend code is new. Please check existing issues before you make a new one. This new dashboard should replicate the old functionality, but we may have missed some edge cases in our rewrite. The old dashboard will remain available, probably for the entire 2024/2025 year, but I won’t be fixing any bugs or doing any enhancements to the old interface. Think of it as a faithful backup in case something critical goes wrong with the new dashboard.

New Assignment Builder

The story for the new assignment builder is similar. It has been completely rewritten using a modern web framework on the backend. Notably, the database for the two builders is identical and shared. You can see the assignments in both. Really Important The old assignment builder used the authoring language restructuredText plus our extensions for you to write questions. The new assignment builder uses a different approach, rather than saving the RST for you to edit, the new assignment builder saves the questions in a JSON format. I have tried to write a converter and have converted old activecode, shortanswer, and multiple choice questions to the new json format so you can edit those old question in the new assignment builder. That was a one time conversion. If you write new questions in the old assignment builder you will not be able to edit them in the new assignment builder. Please use the new assignment builder - we think it is much more user friendly and easier to use. The old questions had a myriad of options :option: in the RST. Many of them were experimental, or implemented for a particular project and many of them are not that useful. So far we have only added the most used options to the new assignment builder. If you find that you need an option that is not available, please let us know.

As with the instructor dashboard, please report any issues you encounter. The old assignment builder will also remain available for the 2024/2025 year, but it will not be receiving any enhancements or bug fixes.

LTI 1.3 Support

Many schools have told us they are moving to LTI 1.3 for their LMS integration and will no longer support LTI 1.1. We have added support for LTI 1.3 in addition to the existing LTI 1.1 support. LTI 1.1 support is only available through the old instructor dashboard, and I won’t be moving any support to the new dashboard since most schools will no longer support 1.1.

Unfortunately LTI 1.3 will need to be configured by your LMS administrator. We have been testing it out in production with Canvas, Moodle, and D2L. If you want to use LTI 1.3 you will need to create an issue on github https://github.com/RunestoneInteractive/rs/issues/new/choose`_ to have us enable your domain. As you will read on the issue template, if your school is going to require us to fill out forms and provide things like HECVATs and VPATs and then LTI 1.3 support is a paid feature. As an open source project we do not have the resources to fill out forms for every school that wants to use our software. If you are a small school or a school in a developing country please let us know and we will work with you to get LTI 1.3 enabled.

On the positive side, if you are using 1.3 and you have pre-released your assignment (on the grading page), then grades will be automatically sent back to your LMS. This is a big improvement over LTI 1.1 where you had to remember to push the grades back.

More to Come

We are continuously working on improving the platform. There are only a few more things to migrate away from our old web framework. These include:

As we migrate each of these components we will keep the old in place so they can be used in parallel. I hope that all of the above can be completed by the end of the school year so that we have a fully modernized code base for fall 2026. As with any system that has been around for a long time, there are lots of features that have been added over the years. We will be evaluating each feature to see if it is still useful and if it is worth migrating to the new framework. We have a lot of usage data to help us make these decisions, but if you find that a feature you use has not been migrated, please let us know.

Brad Miller

Professor Emeritus, Luther College

Founder, President, Chief Developer, Runestone Academy

August 01, 2025

Docker Images for Macs and Linux

One of my hoped for quality of life improvements for the Runestone platform is to make it easier for everyone to run a Runestone server own their own computer. This is especially important for authors who want to test their books locally before pushing them to the Runestone server. We made great progress on this front a couple years ago when I created a container registry on github to hold our docker images for all of our servers. The problem was that the images were built for x86_64 architecture, and so they would not run on ARM based machines like the new Apple Silicon Macs. I didn’t know how to build multi-architecture docker images, and I didn’t have the time to learn how to do it.

Like many things in life, solving the problem is not that hard if you take the time to learn how to do it. I finally carved some time out of my routine of fixing bugs and adding features to learn how to build multi-architecture docker images. I am pleased to announce that we now have images for the Runestone servers that will run on both x86_64 and ARM architectures. This means that you can now run a Runestone server on your Mac or Linux machine without having to build the images yourself! These images are the same images we use in production, so you can be sure that they are stable and reliable.

Attention

Details on how to get configured and running are here: Runestone Server Setup. In my experience the vast majority of the problems that people have when trying to run a Runestone server on their own machine are related to the configuration of the server. The sample env file should work for most people, but you may need to tweak it a bit to get it to work on your machine. If you run into problems, please feel free to create an issue on our GitHub repository, and we will do our best to help you get it working.

The next step would be to create a script that will automatically get the server up and running with minimal user intervention. If anyone is interested in helping with that, please let me know. I would be happy to work with you to get it set up.

July 19, 2025

Mid-July Update

Today is July 19, 2025, and we are excited to share the latest updates with you. We have been hard at work on several projects, and we are pleased to announce that we have made significant progress on the following:

LTI 1.3: We are continuing to roll out LTI 1.3 support across more Learning Management Systems (LMS). This integration will enhance the usability of Runestone in various educational environments, making it easier for instructors to incorporate our resources into their courses. We are happy to report that we have successfully tested it with Desire2Learn, Moodle, and Canvas. If you want to get LTI 1.3 set up for your course please create an issue on our GitHub repository, and we will assist you in the setup process. Note there is a special category for LTI Support issues. Please refer to the LTI documentation in The Instructor Guide for more information. If you have questions please ask them on the #lti_community_support channel in the Runestone discord.

New Assignment Builder: The new assignment builder has been well received, and we are continuing to refine it based on user feedback. We have added several new features, and fixed many bugs. The assignment builder now supports a wider range of question types, including fill-in-the-blank and matching questions. We encourage all instructors to try it out and share their experiences with us.

Quality of Life Improvements: We have made several quality of life improvements to the platform, including: - Improved Course Selection Page - Improved Instructor Dashboard - Better support for MathJax and LaTeX rendering in several areas - Support for attaching pdfs, and image files to short answer questions - many more small improvements to the user interface

Internals : We have made significant internal improvements to our platform, including updates our logging system, optimizing our database queries, and improving the overall performance of the site. These changes will help us provide a more reliable and efficient system.

The internal updates also make it easier for anyone to contribute to Runestone. If you are interested in helping out with a feature or a bug fix I would welcome your help! The documentation is available at Runestone Development Docs. If you have any questions or need assistance, please feel free to reach out to us. We have especially simplified the process by creating database API’s to do most everything you need to do with the database. No need to know or use SQL.

Book Updates

As we continue the transition to writing books in PreTeXt there are several books that are no longer being updated in their original format. In particular the following books have been replaced by new versions:

We’ll mark these and other books as deprecated in the library in the next few weeks to make it easier to find the latest version.

Retiring restructuredText

This is a good time to remind everyone that the markup extensions to restructuredText will no longer be developed. In fact there are quite a few features that are supported in PreTeXt that are not supported in restructuredText. If you are writing a new book, or updating an existing book, we encourage you to use PreTeXt. Beginning with the 8.0 release of the runestone components, we will not include the python code for the markup. Beginning with that release we will just provide the javascript for the interactive components. We look forward to continuing to develop new and innovative interactive components that support student learning with Markdown in PreTeXt.

June 14, 2025

Mid-June Update

Today is June 14, 2025, and we are excited to share the latest updates with you. We have been hard at work on several projects, and we are pleased to announce that we have made significant progress on the following:

New Instructor Dashboard

All of these updates are part of our ongoing effort to improve Runestone Academy and provide a better experience for instructors and students. We appreciate your support and feedback as we continue to work on these projects. You can help us by trying out the new features and letting us know what you think. Reporting bugs and issues is extremely helpful, and we appreciate your patience as we work to resolve them.

May 28, 2025

Summer Roadmap 2025

I’m excited to share our roadmap for the summer of 2025! This summer brings a number of projects both large and small. Here is a high level overview of what I hope to accomplish:

I have suggestions!

If you have suggestions for features or improvements that you would like to see in Runestone, please let us know! We are always looking for ways to improve the platform and make it more useful for instructors and students. Please feeel free to reach out to us by creating an issue on github. Please do not email me.

This feels like a good time to thank all of our contributors who have helped us get to this point. We are a small team, but we have a lot of great people working with us to make Runestone the best it can be. Thank you for your support and for using Runestone!

A Note on Open Source

As we embark on this summer roadmap, I want to take a moment to reflect on the nature of open source software and how it relates to our work at Runestone Academy. Open source is a collaborative effort where anyone can contribute, but it doesn’t mean that every suggestion or request will be implemented. We appreciate all ideas and feedback, but we also need to prioritize our resources and focus on what aligns with our goals.

We are a small team of people who are passionate about open educational resources. The other day I asked GPT to help me come up with an infographic that might help non-coders understand how open source works. Here is what we came up with:

Open Source Infographic

Note: The mathematics example was GPT’s idea, not mine. But I like the analogy. So if you are a mathematician, please don’t be offended.

Here is another way to think about it: Open source software is like a community garden.

Anyone can plant something, anyone can weed, and anyone can enjoy the harvest. But if you walk into the garden and say, “You should plant tomatoes over there,” the response is usually, “That’s a great idea—would you like to help plant them?”

In open source:

Open source thrives on shared goals, not demands. It’s a gift economy—like Wikipedia or community theater. Participation is appreciated, but it doesn’t come with customer support unless someone offers it.

If you have made it this far, I hope you understand that we are always looking for ways to improve Runestone Academy, but we also need to be realistic about what we can accomplish with our limited resources. We appreciate your understanding and support as we continue to work on making Runestone the best it can be.

February 12, 2025

Miller Named Distinguished Member of the ACM

Runestone Academy founder and president, Dr. Bradley Miller, has been named a Distinguished Member of the Association for Computing Machinery (ACM) for his contributions to the development of recommender systems for eCommerce and interactive textbooks for computer science and mathematics. The ACM is the world’s largest educational and scientific computing society, and this honor is given to only 1% of its members. Dr. Miller was recognized for his work in the development of the Runestone Interactive platform, which has been used by over 1 million students and teachers around the world to learn computer science. He has also been a leader in the development of open educational resources (OER) and has been a strong advocate for the use of technology in education.

“Each year we look forward to selecting a new class of ACM Distinguished Members from among our worldwide association of 110,000 colleagues,” explained ACM President Yannis Ioannidis. “ACM’s motto is ‘advancing computing as a science and profession.’”

I am really honored to be recognized by the ACM for my work in computer science education and open educational resources. I have been fortunate to work with many talented people over the years, and this award is a reflection of their hard work as well. I am especially grateful to the Runestone team for their dedication and commitment to making computer science education accessible to all. As a Professor Emeritus of Luther College, I’m especially proud of this honor; if you look at the other 55 people named this year they are from Google, Microsoft, and lots of prestigious research universities around the world. I am proud to be a part of this community and to be able to contribute to the advancement of computing as a science and profession. I look forward to continuing to work with my colleagues in the field to make computer science education more accessible and effective for all students.

You can read more about the announcement On the ACM Website.

September 18, 2024

DDoS Update

Many Hats

The Distributed Denial of Service (DDoS) attack is ongoing. Even after I moved our load balancer to new hardware and a new IP address. This means that the attackers are not just targeting the IP address of the load balancer, but they are targeting “runestone.academy” by name. This is a much more serious attack and it is taking a lot of time to mitigate.

I’ve learned a lot about how to mitigate these attacks and I’m implementing the solutions as quickly as I can without causing a lot of downtime. I’m sorry for the inconvenience this is causing you. I think are to the point where we have minimized it. When a new wave of attacks hits it just takes a minute or so to block the attackers. So, just keep that in mind, take a breath, wait a minute and refresh your page. I’m also sorry that I have to spend so much time on this instead of working on new features for Runestone.

These kinds of sustained attacks do not come for free. There are literally thousands of IP addresses involved over a period of days. This is not just a kid in a basement with a botnet. This is a reasonably well-funded and well-organized attack. I’m not sure what the motive is, but it is clear that they are not going to give up easily. Could it be an evil publisher trying to squash free textbook distribution? Could it be one of our “competitors” trying to take us down? Could it be a foreign government trying to disrupt education in the US? I don’t know. I do know that I’m not going to give up easily either.

The cartoon at the top was generated yesterday by DALL-E. It is a cartoon of me wearing many hats. I thought it was appropriate for the situation. GitHub co-pilot suggested that I should be wearing a tinfoil hat. I’m not sure that would help. It also suggested that I should write that I am working with the NSA, CIA, and Department of Homeland Security to track down the attackers. That is certainly not true. I’m just a guy trying to keep the Runestone servers up and running.

I also want to assure you that, so far, the attack has been limited to, and stopped by the load balancer, our application servers and database are secured behind the load balancer and an additional firewall. So, even if the load balancer were to go down, the application servers would still be up and running. Yes, timeouts of API calls to save data to the database might happen, but you should get a dialog if that happens, so that you can reclick the button and have it save the latest answer again.

Again, please remember to check the Runestone Status Page if you are having trouble accessing the Runestone books. It updates every 5 minutes and is served from a completely different server, so is unaffected by the DDoS attacks.