diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cd52944..be9e8456 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ - Updated dependencies (including the library that lacked armhf support) [#722](https://github.com/juanfont/headscale/pull/722) - Fix missing group expansion in function `excludeCorretlyTaggedNodes` [#563](https://github.com/juanfont/headscale/issues/563) - Improve registration protocol implementation and switch to NodeKey as main identifier [#725](https://github.com/juanfont/headscale/pull/725) +- Add ability to connect to PostgreSQL via unix socket [#734](https://github.com/juanfont/headscale/pull/734) ## 0.16.0 (2022-07-25) diff --git a/app.go b/app.go index 6665c278..bca01b5c 100644 --- a/app.go +++ b/app.go @@ -130,14 +130,22 @@ func NewHeadscale(cfg *Config) (*Headscale, error) { case Postgres: dbString = fmt.Sprintf( "host=%s port=%d dbname=%s user=%s password=%s", + "host=%s dbname=%s user=%s", cfg.DBhost, - cfg.DBport, cfg.DBname, cfg.DBuser, - cfg.DBpass, ) + if !cfg.DBssl { dbString = dbString + " sslmode=disable" + } + + if cfg.DBport != 0 { + dbString += fmt.Sprintf(" port=%d", cfg.DBport) + } + + if cfg.DBpass != "" { + dbString += fmt.Sprintf(" password=%s", cfg.DBpass) } case Sqlite: dbString = cfg.DBpath diff --git a/config-example.yaml b/config-example.yaml index d3d155e2..ed447f9a 100644 --- a/config-example.yaml +++ b/config-example.yaml @@ -114,6 +114,7 @@ db_type: sqlite3 db_path: /var/lib/headscale/db.sqlite # # Postgres config +# If using a Unix socket to connect to Postgres, set the socket path in the 'host' field and leave 'port' blank. # db_type: postgres # db_host: localhost # db_port: 5432