You can set
SERIALIZABLE as the default isolation level in
default_transaction_isolation = 'serializable'
This may confuse clients that assume
READ COMMITTED isolation, so IMO it's better to set it explicitly in your sessions.
As for the rest, per the manual:
DEFERRABLE transaction property has no effect unless the transaction is also
... and given the properties of such transactions, I find it hard to imagine you wanting to make it the default. Are you perhaps confusing it with
SET CONSTRAINTS DEFERRED?
You can make transactions read-only and deferrable by default with:
transaction_read_only = on
transaction_deferrable = on
postgresql.conf but it's really a rather bad idea. Instead, just use an appropriate
SET TRANSACTION in your session before your first "real" SQL statement.