Are you switching away from Rocket.Chat but wish to keep chat history for a period of time for historical purposes? Unfortunately, Rocket.Chat does not have a 'mark entire site as read-only' button at the moment (v0.69.2). Instead, here's how to make all rooms read-only and archive them with a couple MongoDB queries.
First, open a shell to your MongoDB instance. Once logged in, execute the following queries:
# Archive all rooms
db.getCollection('rocketchat_room').update({}, {$set: {'archived':'true'}}, {multi: true})
# Mark all rooms as read-only
db.getCollection('rocketchat_room').update({}, {$set: {'ro':'true'}}, {multi: true})
Now that we have performed those queries, don't forget to update permissions (Administration > Permissions) and revoke the following permissions from users:
And that's it! You now have a somewhat read-only instance of Rocket.Chat! Keep in mind that admin users will still be able to post in read-only channels.