30 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Mercury
 | |
| 
 | |
| ActivityPub server implementation (hopefully, eventually),
 | |
| currently mostly a way for me to play around with writing an API server in TypeScript.
 | |
| 
 | |
| ## Configuration
 | |
| 
 | |
| For now, check out `src/config.ts`, the names should be mostly self explanatory.
 | |
| Consider all environment variables required.
 | |
| 
 | |
| ## Development commands
 | |
| 
 | |
| - Building the server: `pnpm build`
 | |
| - Migrating the database: `pnpm migrate`
 | |
| - Watching for changes and reloading the server automatically: `pnpm dev`
 | |
| - Formatting: `pnpm format`
 | |
| - Linting (if you don't have an ESLint plugin): `pnpm format`
 | |
| 
 | |
| ## Creating migrations
 | |
| 
 | |
| Creating migrations is a little awkward because TypeORM expects `ts-node`, which uses `tsc`.
 | |
| To create a migration, first run `pnpm build`,
 | |
| then run `pnpm typeorm migration:generate -p -d ./dist/db/index.js ./src/db/migrations/<name>`,
 | |
| replacing `<name>` with the name of the migration you're creating.
 | |
| Then rename the created file to end in `.js` and remove the TypeScript-specific code from it.
 | |
| (Yes, this is incredibly janky, but it works, and it only needs to be done once per migration, actually migrating works flawlessly)
 | |
| 
 | |
| ## License
 | |
| 
 | |
| Mercury is licensed under the GNU Affero General Public License, version 3 **only**.
 |