Compare commits
4 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5aea1d3946 | ||
|
|
13c5193344 | ||
|
|
e459bb20ee | ||
|
|
4b7ec853b1 |
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,4 +1,6 @@
|
||||||
/graphics
|
/graphics
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
**/*.secret
|
**/*.secret
|
||||||
**/*.pw
|
**/*.pw
|
||||||
|
mounts/
|
||||||
|
|
|
||||||
|
|
@ -188,11 +188,14 @@ fn get_connection_string() -> String {
|
||||||
if let Some(password_file_location) = env::var_os("DATABASE_PASSWORD_FILE") {
|
if let Some(password_file_location) = env::var_os("DATABASE_PASSWORD_FILE") {
|
||||||
// The password can be left out of the URL, we add it from the specified
|
// The password can be left out of the URL, we add it from the specified
|
||||||
// file (presumably under /run/secrets/)
|
// file (presumably under /run/secrets/)
|
||||||
let password = fs::read(&password_file_location).unwrap_or_else(|err| {
|
let password = fs::read(&password_file_location)
|
||||||
panic!("could not read database password from {password_file_location:?}\n\t{err:?}")
|
.unwrap_or_else(|err| {
|
||||||
});
|
panic!("could not read database password from {password_file_location:?}\n\t{err:?}")
|
||||||
|
});
|
||||||
|
let password = String::from(String::from_utf8_lossy(password.as_slice()));
|
||||||
|
let password = password.trim_end();
|
||||||
let mut url = Url::parse(&connection_string).expect("invalid connection string");
|
let mut url = Url::parse(&connection_string).expect("invalid connection string");
|
||||||
url.set_password(Some(String::from_utf8_lossy(password.as_slice()).as_ref()))
|
url.set_password(Some(password))
|
||||||
.unwrap_or_else(|_| panic!("invalid database URL: {connection_string:?}"));
|
.unwrap_or_else(|_| panic!("invalid database URL: {connection_string:?}"));
|
||||||
url.to_string()
|
url.to_string()
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ pub async fn cleanup<A: Adaptor>(
|
||||||
println!("Error reading CRON_KEY_FILE at {path:?}");
|
println!("Error reading CRON_KEY_FILE at {path:?}");
|
||||||
return Err(ApiError::NotAuthorized);
|
return Err(ApiError::NotAuthorized);
|
||||||
};
|
};
|
||||||
String::from_utf8_lossy(key.as_slice()).into()
|
String::from_utf8_lossy(key.as_slice()).to_owned().trim_end().to_string()
|
||||||
} else {
|
} else {
|
||||||
Default::default()
|
Default::default()
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,8 @@ ENV NODE_ENV=production
|
||||||
# Uncomment the following line in case you want to disable telemetry during runtime.
|
# Uncomment the following line in case you want to disable telemetry during runtime.
|
||||||
ENV NEXT_TELEMETRY_DISABLED=1
|
ENV NEXT_TELEMETRY_DISABLED=1
|
||||||
|
|
||||||
RUN addgroup --system --gid 1000 nodejs
|
RUN addgroup --system --gid 1001 nodejs
|
||||||
RUN adduser --system --uid 1000 nextjs
|
RUN adduser --system --uid 1001 nextjs
|
||||||
|
|
||||||
COPY --from=builder /app/public ./public
|
COPY --from=builder /app/public ./public
|
||||||
|
|
||||||
|
|
|
||||||
4
frontend/next.config.js
Normal file
4
frontend/next.config.js
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
/** @type {import('next').NextConfig} */
|
||||||
|
module.exports = {
|
||||||
|
output: 'standalone'
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue