Oddbean new post about | logout
 #realy installation is simple

install go 1.23 and git

git clone https://github.com/mleku/realy.git

cd realy

for the simplest but not as performant

    export CGO_ENABLED=0
    cd cmd/realy
    go build .

this produces the binary in the current directory, then move the binary `realy` where you want, eg /usr/local/bin

    realy env

spits out the default configuration (and when customised, the current configuration)

    mkdir ~/.realy
    realy env > ~/.realy/.env

these are the expected default locations for the data directory and configuration file

use your editor (nano i guess would be most people, maybe vi/vim for some) to edit, it's just a set of key/value pairs in standard env style

you can move it to another directory if you must, but you have to invoke it with the data directory environment variable set in the command, eg:

    ROOT_DIR=/path/to/where/you/want/it PROFILE=.profileFolderNameCanBeAnyValidDirectoryName realy

this will then make realy look in that place to load the .env file (it's always called .env though, sorry #notsorry

for more information, see https://realy.lol it will explain how to disable CGO as well as, from the main readme.md, direct you to the instructions on how to build the bitcoin/secp256k1 signature library to get much better event signature verification performance

#realy uses an event store based on fiatjaf's eventstore/badger but much less resource hungry, and using the fastest #golang binary event encoder i am aware of, there is no extra configuration, no docker, no environment, #nobullshit

it is, in my 8 years experience at Go development a reasonably well written, maybe could be better documented codebase, and it should not be difficult, if you have the will, to learn Go and to modify this relay to do whatever you like, and please do ping me if you create featurse for it, i am happy to integrate them into the mainline with a suitable, consistent interface for configuring to use it (such as how it currently is a no-auth open public relay by default currently, but if you set AUTH_REQUIRED it requires nip-42 auth, and if you put your npub in OWNERS it will allow everyone on your follow list, once it's published to the relay, to publish notes to your relay and use it as an outbox