Read Only Mode
 
Section 8.4: Read Only Mode

Running in Read Only Mode

RAMADDA can be run on multiple machines and, for security reasons, can provide read only access to its contents. The main reason for this is so you can have a public facing RAMADDA setup in read-only mode so it does not allow logins, uploads or any administration features but does provide the normal content and data access. Then within your firewall you can have a full featured RAMADDA that you use to manage content and data.

RAMADDA gets its content from 2 places - a database and the file system. You need to have RAMADDA running on some external database server (e.g., mysql, postgres). You configure your internal and external RAMADDA instances to use the same database.

For the file system you could have both RAMADDA's use the same RAMADDA home directory. But, there are some things in there that shouldn't be shared (e.g., properties files, plugins, log files, etc). So, its best to configure the RAMADDAs so each have their own home directory but configure the shared content directories to be the same.

To configure this add the following property to one of the local property files on your read-only server.

ramadda.readonly=true
Set the following properties to define any alternate storage directories:
ramadda.storage.storagedir=/some/dir/storage
ramadda.storage.entriesdir=/some/dir/entries
ramadda.storage.uploaddir=/some/dir/uploads
These are the default settings. I know, I know, there should be one main storage directory property that can be set once but there isn't. Sorry.

Note: you can refer to the RAMADDA home dir with the %repositorydir% macro:

ramadda.storage.storagedir=%repositorydir%/storage

Note: you can also set the location of the log and tmp dirs:

ramadda.storage.tmpdir=%repositorydir%/tmp
ramadda.storage.logdir=%repositorydir%/logs

No Cache RAMADDA

You can also run multiple full featured RAMADDA (e.g., supports login, admin, creation/editing, etc) by setting the property:
ramadda.docache=false
This just turns off RAMADDA's memory cache mechanism. But, if you are doing lots of simultaneous editing and deletion and moving of content on the different RAMADDA's you might run into some issues.

Clearing the Cache

You can force RAMADDA to clear its cache and also re-read all of the properties from the database by hitting: <repository root>/clearstate This will present a form where you need to enter a special pass-phrase or password. Note:The pass-phrase is not meant to be secure. Its used to filter out strangers from resetting your repository. To set the pass-phrase set a property on the server (e.g., plugins/admin.properties):
ramadda.passphrase=....