Add default configuration file to debian package
This commit is contained in:
parent
dad9640685
commit
6c675c11c4
5 changed files with 76 additions and 26 deletions
22
README.md
22
README.md
|
@ -39,7 +39,9 @@ cargo build --release --features production
|
|||
|
||||
This command will produce two binaries in `target/release` directory, `mitra` and `mitractl`.
|
||||
|
||||
Create the database and the configuration file (see [example](./config.yaml.example)). Default config file path is `/etc/mitra/config.yaml`, but it can be changed using `CONFIG_PATH` environment variable.
|
||||
Install PostgreSQL and create the database.
|
||||
|
||||
Create configuration file by copying `contrib/mitra_config.yaml` and configure the instance. Default config file path is `/etc/mitra/config.yaml`, but it can be changed using `CONFIG_PATH` environment variable.
|
||||
|
||||
Start Mitra:
|
||||
|
||||
|
@ -53,6 +55,24 @@ Building instructions for `mitra-web` frontend can be found at https://codeberg.
|
|||
|
||||
To run Mitra as a systemd service, check out the [systemd unit file example](./contrib/mitra.service).
|
||||
|
||||
### Debian package
|
||||
|
||||
Download and install Mitra package:
|
||||
|
||||
```
|
||||
dpkg -i mitra.deb
|
||||
```
|
||||
|
||||
Install PostgreSQL and create the database. Open configuration file `/etc/mitra/config.yaml` and configure the instance.
|
||||
|
||||
Start Mitra:
|
||||
|
||||
```
|
||||
systemctl start mitra
|
||||
```
|
||||
|
||||
An HTTP server will be needed to handle HTTPS requests and serve the frontend. See the example of [nginx configuration file](./contrib/mitra.nginx).
|
||||
|
||||
## Development
|
||||
|
||||
### Create database
|
||||
|
|
|
@ -4,35 +4,19 @@ storage_dir: files
|
|||
http_host: '127.0.0.1'
|
||||
http_port: 8380
|
||||
|
||||
log_level: info
|
||||
instance_uri: 127.0.0.1:8380
|
||||
instance_title: Mitra
|
||||
instance_short_description: My instance
|
||||
instance_description: My instance
|
||||
registrations_open: true
|
||||
|
||||
# Domain name
|
||||
instance_uri: example.tld
|
||||
instance_title: example
|
||||
instance_short_description: my instance
|
||||
# Long description can contain markdown syntax
|
||||
instance_description: my instance
|
||||
|
||||
registrations_open: false
|
||||
# EIP-4361 login message
|
||||
login_message: 'Do not sign this message on other sites!'
|
||||
post_character_limit: 2000
|
||||
|
||||
# Blockchain settings
|
||||
# Set `blockchain` key to `null` to disable blockchain integration
|
||||
blockchain:
|
||||
# CAIP-2 chain ID (https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md)
|
||||
chain_id: eip155:31337
|
||||
contract_address: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9'
|
||||
contract_dir: contracts
|
||||
api_url: 'http://127.0.0.1:8545'
|
||||
# Block explorer base URL (should be compatible with https://eips.ethereum.org/EIPS/eip-3091)
|
||||
explorer_url: null
|
||||
# Instance private key
|
||||
signing_key: null
|
||||
|
||||
# IPFS settings
|
||||
# Set `ipfs_api_url` key to `null` to disable IPFS integration
|
||||
ipfs_api_url: 'http://127.0.0.1:5001'
|
||||
# IPFS gateway for clients
|
||||
ipfs_gateway_url: 'https://ipfs.io'
|
||||
ipfs_gateway_url: 'http://127.0.0.1:8001'
|
||||
|
|
42
contrib/mitra_config.yaml
Normal file
42
contrib/mitra_config.yaml
Normal file
|
@ -0,0 +1,42 @@
|
|||
# Mitra configuration file
|
||||
|
||||
database_url: postgres://mitra:mitra@127.0.0.1:5432/mitra
|
||||
storage_dir: /var/lib/mitra
|
||||
|
||||
http_host: '127.0.0.1'
|
||||
http_port: 8383
|
||||
|
||||
# Log level (debug, info, warn)
|
||||
#log_level: info
|
||||
|
||||
# Domain name
|
||||
instance_uri: example.tld
|
||||
instance_title: example
|
||||
instance_short_description: my instance
|
||||
# Long description can contain markdown syntax
|
||||
instance_description: my instance
|
||||
|
||||
registrations_open: false
|
||||
|
||||
# EIP-4361 login message
|
||||
#login_message: 'Do not sign this message on other sites!'
|
||||
|
||||
#post_character_limit: 2000
|
||||
|
||||
# Blockchain settings
|
||||
# Example:
|
||||
#blockchain:
|
||||
# chain_id: eip155:31337
|
||||
# contract_address: '0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9'
|
||||
# contract_dir: contracts
|
||||
# api_url: 'http://127.0.0.1:8545'
|
||||
# explorer_url: null
|
||||
# signing_key: null
|
||||
# Set `blockchain` key to `null` to disable blockchain integration
|
||||
blockchain: null
|
||||
|
||||
# IPFS settings
|
||||
# Set `ipfs_api_url` key to `null` to disable IPFS integration
|
||||
ipfs_api_url: null
|
||||
# IPFS gateway for clients
|
||||
ipfs_gateway_url: null
|
|
@ -19,12 +19,13 @@ echo "Architecture: $ARCH" >> $PACKAGE_DIR/debian/control
|
|||
# Service
|
||||
cp contrib/mitra.service $PACKAGE_DIR/debian/mitra.service
|
||||
|
||||
# Config directory
|
||||
# Config file
|
||||
mkdir -p $PACKAGE_DIR/etc/mitra
|
||||
cp contrib/mitra_config.yaml $PACKAGE_DIR/etc/mitra/config.yaml
|
||||
|
||||
# Config example
|
||||
mkdir -p $PACKAGE_DIR/usr/share/mitra/examples
|
||||
cp config.yaml.example $PACKAGE_DIR/usr/share/mitra/examples/config.yaml
|
||||
cp contrib/mitra_config.yaml $PACKAGE_DIR/usr/share/mitra/examples/config.yaml
|
||||
|
||||
# Binaries
|
||||
mkdir -p $PACKAGE_DIR/usr/bin
|
||||
|
|
|
@ -80,11 +80,14 @@ fn default_post_character_limit() -> usize { 2000 }
|
|||
|
||||
#[derive(Clone, Deserialize)]
|
||||
pub struct BlockchainConfig {
|
||||
// CAIP-2 chain ID (https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md)
|
||||
pub chain_id: String,
|
||||
pub contract_address: String,
|
||||
pub contract_dir: PathBuf,
|
||||
pub api_url: String,
|
||||
// Block explorer base URL (should be compatible with https://eips.ethereum.org/EIPS/eip-3091)
|
||||
pub explorer_url: Option<String>,
|
||||
// Instance private key
|
||||
pub signing_key: String,
|
||||
}
|
||||
|
||||
|
@ -122,7 +125,7 @@ pub struct Config {
|
|||
#[serde(default = "default_log_level")]
|
||||
pub log_level: LogLevel,
|
||||
|
||||
// Instance info
|
||||
// Domain name or <IP address>:<port>
|
||||
instance_uri: String,
|
||||
pub instance_title: String,
|
||||
pub instance_short_description: String,
|
||||
|
|
Loading…
Reference in a new issue